diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll index 5e988058..ac26f94d 100644 Binary files a/1.6/1.6/Assemblies/WulaFallenEmpire.dll and b/1.6/1.6/Assemblies/WulaFallenEmpire.dll differ diff --git a/1.6/1.6/Defs/PawnKinds/PawnKinds_Wula.xml b/1.6/1.6/Defs/PawnKinds/PawnKinds_Wula.xml index ff0bd734..841bdc03 100644 --- a/1.6/1.6/Defs/PawnKinds/PawnKinds_Wula.xml +++ b/1.6/1.6/Defs/PawnKinds/PawnKinds_Wula.xml @@ -343,6 +343,9 @@ 99999~99999 0.7 + +
  • Wula_Mech_Mobile_Factory_Weapon
  • +
  • Wula_Mech_Mobile_Factory_Produce
  • diff --git a/1.6/1.6/Defs/SoundDefs/Wula_Sound_Weapons.xml b/1.6/1.6/Defs/SoundDefs/Wula_Sound_Weapons.xml index f18e81e6..635ab7d4 100644 --- a/1.6/1.6/Defs/SoundDefs/Wula_Sound_Weapons.xml +++ b/1.6/1.6/Defs/SoundDefs/Wula_Sound_Weapons.xml @@ -181,6 +181,38 @@ + + Wula_AI_Heavy_Panzer_Turret_Weapon_Shootingsound + MapOnly + 2 + +
  • + +
  • + Wula/Wula_AI_Heavy_Panzer_Turret_Weapon_Shootingsound +
  • + + 45 + 0.9~1.1 + +
    +
    + + Wula_AI_Panzer_Destroyer_Turret_Weapon_Shootingsound + MapOnly + 1 + +
  • + +
  • + Wula/Wula_AI_Panzer_Destroyer_Turret_Weapon_Shootingsound +
  • + + 65 + 0.9~1.1 + +
    +
    WULA_PsiCrusher_Sound MapOnly diff --git a/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Mech_Buildings.xml b/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Mech_Buildings.xml index acaf0765..37814e28 100644 --- a/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Mech_Buildings.xml +++ b/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Mech_Buildings.xml @@ -3,10 +3,10 @@ Wula_AI_Heavy_Panzer_Cleanzone - - 清理出一块场地并准备好资源,使得乌拉帝国母舰可以向此处投放大型战争机械。\n\n战车是乌拉帝国的中型战争机械,以悬浮的方式穿梭于战场之上,使用穿透力强大的战车炮和导弹打击敌方,是乌拉帝国前锋部队的中流砥柱。 + + 清理出一块场地并准备好资源,使得乌拉帝国母舰可以向此处投放大型战争机械。\n\n巨戟是乌拉帝国的中型构装体,以悬浮的方式穿梭于战场之上,使用拥有强大穿透力且射速较快的双联晶化炮打击敌方,是乌拉帝国前锋部队的中流砥柱。 Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Incoming - 1.33 + 1 (0, -0.1) MinifiedThing Normal @@ -20,7 +20,7 @@ Wula/Building/WULA_Dropping_Building_Cleanzone Graphic_Multi - (3,3) + (4,4) false @@ -50,7 +50,7 @@ 1 0 - (3,3) + (4,4) 0 0 false @@ -73,7 +73,7 @@ Wula_AI_Heavy_Panzer_Incoming - + (1,1) WulaFallenEmpire.Skyfaller_PawnSpawner @@ -110,7 +110,7 @@
  • Wula_AI_Heavy_Panzer PlayerColony - true + false false
  • @@ -119,10 +119,10 @@ Wula_AI_Rocket_Panzer_Cleanzone - - 清理出一块场地并准备好资源,使得乌拉帝国母舰可以向此处投放大型战争机械。\n\n喷火战车乌拉帝国的中型战争机械,以悬浮的方式穿梭于战场之上,拥有车体臼炮和两具可以发射大量燃烧火箭弹的转轮导弹巢,但是未像其姊妹型号那样装备护盾。 + + 清理出一块场地并准备好资源,使得乌拉帝国母舰可以向此处投放大型战争机械。\n\n炎霖是乌拉帝国的中型战争机械,以悬浮的方式穿梭于战场之上,可以在远距离上使用火箭弹巢发射漫天的弹幕,用纯粹的火力淹没敌方集群。 Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Rocket_Panzer_Incoming - 1.33 + 1 (0, -0.1) MinifiedThing Normal @@ -189,7 +189,7 @@ Wula_AI_Rocket_Panzer_Incoming - + (1,1) WulaFallenEmpire.Skyfaller_PawnSpawner @@ -226,7 +226,123 @@
  • Wula_AI_Rocket_Panzer PlayerColony - true + false + false +
  • + +
    + + + + Wula_AI_Panzer_Destroyer_Cleanzone + + 清理出一块场地并准备好资源,使得乌拉帝国母舰可以向此处投放大型战争机械。\n\n冥波是乌拉帝国的中型战争机械,以悬浮的方式穿梭于战场之上,拥有一门射速缓慢但射程极远、威力强大的电浆炮,足以威胁那些最厚实的装甲单位。 + Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Panzer_Destroyer_Incoming + 1 + (0, -0.1) + MinifiedThing + Normal + None + + Wula_AI_Panzer_Destroyer + + +
  • BuildingsMisc
  • +
    + + Wula/Building/WULA_Dropping_Building_Cleanzone + Graphic_Multi + (3,3) + + false + + + + 300 + 18 + 2 + 50 + 1 + + Building + PassThroughOnly + false + 0.5 + false + 0 + false + false + +
  • WULA_AI_Heavy_Panzer_Technology
  • +
    + + 0 + 1 + 0 + 1 + 0 + + (3,3) + 0 + 0 + false + + BuildingDestroyed_Metal_Small + + +
  • WulaFallenEmpire.PlaceWorker_CustomRadius
  • +
    + WULA_Buildings + +
  • + Wula_AI_Panzer_Destroyer_Incoming + true + 1 + true + false +
  • +
    +
    + + Wula_AI_Panzer_Destroyer_Incoming + + (1,1) + WulaFallenEmpire.Skyfaller_PawnSpawner + + Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Rocket_Panzer_Incoming + Graphic_Single + CutoutFlying + (7,7) + + + Accelerate + Things/Skyfaller/SkyfallerShadowDropPod + (7, 7) + DropPod_Fall + 100 + Explosion_Vaporize + 0.05 + 1 + 1 + + +
  • (0,0)
  • +
  • (1, 1)
  • +
    +
    + + 6 + WULA_Mech_Drop + 0 +
    + +
  • + Smoke_Joint +
  • +
  • + Wula_AI_Panzer_Destroyer + PlayerColony + false false
  • @@ -311,7 +427,7 @@ Wula/Things/WULA_Mobile_Shield/WULA_Mobile_Shield_Incoming Graphic_Single CutoutFlying - (5,5) + (8,8)
    Accelerate @@ -426,7 +542,7 @@ Wula/Things/Wula_Mech_Mobile_Factory/Wula_Mech_Mobile_Factory_Incoming Graphic_Single CutoutFlying - (9,9) + (12,12) Accelerate @@ -456,7 +572,7 @@
  • Wula_Mech_Mobile_Factory PlayerColony - true + false false
  • diff --git a/1.6/1.6/Defs/ThingDefs_Misc/Weapons/WULA_FE_Machine_Weapon.xml b/1.6/1.6/Defs/ThingDefs_Misc/Weapons/WULA_FE_Machine_Weapon.xml index bf33c124..1f39987d 100644 --- a/1.6/1.6/Defs/ThingDefs_Misc/Weapons/WULA_FE_Machine_Weapon.xml +++ b/1.6/1.6/Defs/ThingDefs_Misc/Weapons/WULA_FE_Machine_Weapon.xml @@ -281,6 +281,65 @@
    + + Wula_Mech_Mobile_Factory_Main_Weapon + + MFm-2"陆行舰"车体上的测距器,可以确保其炮塔在可以开火的最佳距离,被其瞄准的目标会成为炮塔的优先攻击目标。 + Normal + Spacer + None + true + Wula/Weapon/WULA_WM_Panzer_Destroyer_Turret + + Wula/Weapon/WULA_Weapon_Empty + Graphic_Single + 1.35 + + Interact_Rifle + + + 2500 + + 8 + 1 + 1 + 1 + 1 + 0.1 + + +
  • + WulaFallenEmpire.Verb_RangeChecker + true + Bullet_ChargeRifle + 12 + 120 + 0.2 + 1 + 0 + false + + + true + +
  • +
    + + 1 + + +
  • Wula_Mech_Mobile_Factory_Weapon
  • +
    + + +
  • + +
  • Wula_Mech_Mobile_Factory
  • + + +
    +
    WULA_MechFlyerTurretGun @@ -396,7 +455,7 @@ 2 4 true - WULA_MW_Mass_Drivers_Shootingsound + Wula_AI_Heavy_Panzer_Turret_Weapon_Shootingsound GunTail_Heavy 18 false @@ -450,7 +509,7 @@ Spacer None true - Wula/Projectile/WULA_Shrapnel + Wula/Weapon/WULA_WM_Panzer_Turret Wula/Weapon/WULA_Weapon_Empty Graphic_Single @@ -598,7 +657,7 @@ Spacer None true - Wula/Projectile/WULA_Shrapnel + Wula/Weapon/WULA_WM_Panzer_Rocket_Turret Wula/Weapon/WULA_Weapon_Empty Graphic_Single @@ -657,7 +716,7 @@ true Ultra - Wula/Weapon/WULA_WM_Panzer_Turret + Wula/Weapon/WULA_WM_Panzer_Destroyer_Turret Graphic_Single 3 @@ -681,7 +740,7 @@ 1 8 true - WULA_MW_Mass_Drivers_Shootingsound + Wula_AI_Panzer_Destroyer_Turret_Weapon_Shootingsound GunTail_Heavy 18 false @@ -743,7 +802,7 @@ Spacer None true - Wula/Projectile/WULA_Shrapnel + Wula/Weapon/WULA_WM_Panzer_Destroyer_Turret Wula/Weapon/WULA_Weapon_Empty Graphic_Single diff --git a/1.6/1.6/Defs/ThingDefs_Races/WULA_Mechunit_Race.xml b/1.6/1.6/Defs/ThingDefs_Races/WULA_Mechunit_Race.xml index 6fb23b94..b9d1ea2f 100644 --- a/1.6/1.6/Defs/ThingDefs_Races/WULA_Mechunit_Race.xml +++ b/1.6/1.6/Defs/ThingDefs_Races/WULA_Mechunit_Race.xml @@ -1490,7 +1490,7 @@ ConstructMetal
  • - Wula_AI_Heavy_Panzer_Main_Weapon + Wula_Mech_Mobile_Factory_Main_Weapon
  • true diff --git a/Content/Sounds/Wula/Wula_AI_Heavy_Panzer_Turret_Weapon_Shootingsound.wav b/Content/Sounds/Wula/Wula_AI_Heavy_Panzer_Turret_Weapon_Shootingsound.wav new file mode 100644 index 00000000..11325b45 Binary files /dev/null and b/Content/Sounds/Wula/Wula_AI_Heavy_Panzer_Turret_Weapon_Shootingsound.wav differ diff --git a/Content/Sounds/Wula/Wula_AI_Panzer_Destroyer_Turret_Weapon_Shootingsound.wav b/Content/Sounds/Wula/Wula_AI_Panzer_Destroyer_Turret_Weapon_Shootingsound.wav new file mode 100644 index 00000000..f20c625b Binary files /dev/null and b/Content/Sounds/Wula/Wula_AI_Panzer_Destroyer_Turret_Weapon_Shootingsound.wav differ diff --git a/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Panzer_Destroyer_Icon.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Panzer_Destroyer_Icon.png new file mode 100644 index 00000000..d20b6f52 Binary files /dev/null and b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Panzer_Destroyer_Icon.png differ diff --git a/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Panzer_Destroyer_Incoming.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Panzer_Destroyer_Incoming.png new file mode 100644 index 00000000..1965998d Binary files /dev/null and b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Panzer_Destroyer_Incoming.png differ diff --git a/Content/Textures/Wula/Weapon/WULA_WM_Panzer_Destroyer_Turret.png b/Content/Textures/Wula/Weapon/WULA_WM_Panzer_Destroyer_Turret.png new file mode 100644 index 00000000..38af7cdd Binary files /dev/null and b/Content/Textures/Wula/Weapon/WULA_WM_Panzer_Destroyer_Turret.png differ diff --git a/Source/WulaFallenEmpire/Verb/Verb_RangeChecker.cs b/Source/WulaFallenEmpire/Verb/Verb_RangeChecker.cs index a9632de3..03f008cd 100644 --- a/Source/WulaFallenEmpire/Verb/Verb_RangeChecker.cs +++ b/Source/WulaFallenEmpire/Verb/Verb_RangeChecker.cs @@ -1,4 +1,3 @@ -// File: Verb_RangeChecker.cs using RimWorld; using System.Collections.Generic; using UnityEngine; @@ -7,194 +6,60 @@ using Verse; namespace WulaFallenEmpire { /// - /// 用于距离判断的Verb,不发射任何射弹,不造成伤害,仅用于距离计算和AI判断 + /// 用于距离判断的Verb,不发射任何射弹,不造成伤害,不产生噪音 + /// 仅用于距离计算、视线检查和AI判断 /// 当发射成功时,会设置Pawn身上所有Comp_MultiTurretGun的focusTarget为目标 /// - public class Verb_RangeChecker : Verb_LaunchProjectile + public class Verb_RangeChecker : Verb { + // 重写瞄准相关方法,使其不产生视觉或声音效果 + public override void WarmupComplete() + { + base.WarmupComplete(); + + // 不播放射击声音 + // 不产生射击效果 + } + protected override bool TryCastShot() { + // 基础检查 if (currentTarget.HasThing && currentTarget.Thing.Map != caster.Map) - { - return false; - } - - ThingDef projectile = Projectile; - if (projectile == null) - { - return false; - } - - ShootLine resultingLine; - bool flag = TryFindShootLineFromTo(caster.Position, currentTarget, out resultingLine); - if (verbProps.stopBurstWithoutLos && !flag) - { return false; + + // 检查视线 + ShootLine shootLine; + if (!TryFindShootLineFromTo(caster.Position, currentTarget, out shootLine)) + { + if (verbProps.stopBurstWithoutLos) + return false; } + // 更新设备状态(如果有) if (base.EquipmentSource != null) { base.EquipmentSource.GetComp()?.Notify_ProjectileLaunched(); base.EquipmentSource.GetComp()?.UsedOnce(); } + // 记录射击时间 lastShotTick = Find.TickManager.TicksGame; - Thing manningPawn = caster; - Thing equipmentSource = base.EquipmentSource; - CompMannable compMannable = caster.TryGetComp(); - if (compMannable?.ManningPawn != null) - { - manningPawn = compMannable.ManningPawn; - equipmentSource = caster; - } - Vector3 drawPos = caster.DrawPos; - Projectile projectile2 = (Projectile)GenSpawn.Spawn(projectile, resultingLine.Source, caster.Map); - if (equipmentSource.TryGetComp(out CompUniqueWeapon comp)) - { - foreach (WeaponTraitDef item in comp.TraitsListForReading) - { - if (item.damageDefOverride != null) - { - projectile2.damageDefOverride = item.damageDefOverride; - } - - if (!item.extraDamages.NullOrEmpty()) - { - Projectile projectile3 = projectile2; - if (projectile3.extraDamages == null) - { - projectile3.extraDamages = new List(); - } - projectile2.extraDamages.AddRange(item.extraDamages); - } - } - } + // 更新炮塔焦点目标 + UpdateTurretFocusTargets(); - if (verbProps.ForcedMissRadius > 0.5f) - { - float num = verbProps.ForcedMissRadius; - if (manningPawn is Pawn pawn) - { - num *= verbProps.GetForceMissFactorFor(equipmentSource, pawn); - } - - float num2 = VerbUtility.CalculateAdjustedForcedMiss(num, currentTarget.Cell - caster.Position); - if (num2 > 0.5f) - { - IntVec3 forcedMissTarget = GetForcedMissTarget(num2); - if (forcedMissTarget != currentTarget.Cell) - { - ProjectileHitFlags projectileHitFlags = ProjectileHitFlags.NonTargetWorld; - if (Rand.Chance(0.5f)) - { - projectileHitFlags = ProjectileHitFlags.All; - } - - if (!canHitNonTargetPawnsNow) - { - projectileHitFlags &= ~ProjectileHitFlags.NonTargetPawns; - } - - // 模拟发射成功,但不实际发射 - bool shotResult = SimulateShotSuccess(drawPos, forcedMissTarget, currentTarget, projectileHitFlags, preventFriendlyFire, equipmentSource); - if (shotResult) - { - UpdateTurretFocusTargets(); - } - return shotResult; - } - } - } - - ShotReport shotReport = ShotReport.HitReportFor(caster, this, currentTarget); - Thing randomCoverToMissInto = shotReport.GetRandomCoverToMissInto(); - ThingDef targetCoverDef = randomCoverToMissInto?.def; - - if (verbProps.canGoWild && !Rand.Chance(shotReport.AimOnTargetChance_IgnoringPosture)) - { - bool flyOverhead = projectile2?.def?.projectile != null && projectile2.def.projectile.flyOverhead; - resultingLine.ChangeDestToMissWild(shotReport.AimOnTargetChance_StandardTarget, flyOverhead, caster.Map); - ProjectileHitFlags projectileHitFlags2 = ProjectileHitFlags.NonTargetWorld; - if (Rand.Chance(0.5f) && canHitNonTargetPawnsNow) - { - projectileHitFlags2 |= ProjectileHitFlags.NonTargetPawns; - } - - // 模拟发射成功,但不实际发射 - bool shotResult = SimulateShotSuccess(drawPos, resultingLine.Dest, currentTarget, projectileHitFlags2, preventFriendlyFire, equipmentSource, targetCoverDef); - if (shotResult) - { - UpdateTurretFocusTargets(); - } - return shotResult; - } - - if (currentTarget.Thing != null && currentTarget.Thing.def.CanBenefitFromCover && !Rand.Chance(shotReport.PassCoverChance)) - { - ProjectileHitFlags projectileHitFlags3 = ProjectileHitFlags.NonTargetWorld; - if (canHitNonTargetPawnsNow) - { - projectileHitFlags3 |= ProjectileHitFlags.NonTargetPawns; - } - - // 模拟发射成功,但不实际发射 - bool shotResult = SimulateShotSuccess(drawPos, randomCoverToMissInto, currentTarget, projectileHitFlags3, preventFriendlyFire, equipmentSource, targetCoverDef); - if (shotResult) - { - UpdateTurretFocusTargets(); - } - return shotResult; - } - - ProjectileHitFlags projectileHitFlags4 = ProjectileHitFlags.IntendedTarget; - if (canHitNonTargetPawnsNow) - { - projectileHitFlags4 |= ProjectileHitFlags.NonTargetPawns; - } - - if (!currentTarget.HasThing || currentTarget.Thing.def.Fillage == FillCategory.Full) - { - projectileHitFlags4 |= ProjectileHitFlags.NonTargetWorld; - } - - // 模拟发射成功,但不实际发射 - bool finalShotResult = SimulateFinalShotSuccess(drawPos, resultingLine.Dest, currentTarget, projectileHitFlags4, preventFriendlyFire, equipmentSource, targetCoverDef); - if (finalShotResult) - { - UpdateTurretFocusTargets(); - } - return finalShotResult; - } - - /// - /// 模拟射击成功的情况 - /// - private bool SimulateShotSuccess(Vector3 drawPos, IntVec3 targetCell, LocalTargetInfo target, ProjectileHitFlags hitFlags, bool preventFriendlyFire, Thing equipmentSource, ThingDef targetCoverDef = null) - { - // 这里不实际发射射弹,只返回成功 - // 销毁之前创建的射弹对象,因为我们不需要它 + // 返回成功,但不实际射击 return true; } /// - /// 模拟射击成功的情况(带目标) + /// 重写射击效果,确保不产生任何视觉或声音效果 /// - private bool SimulateShotSuccess(Vector3 drawPos, Thing target, LocalTargetInfo originalTarget, ProjectileHitFlags hitFlags, bool preventFriendlyFire, Thing equipmentSource, ThingDef targetCoverDef = null) + public override void DrawHighlight(LocalTargetInfo target) { - // 这里不实际发射射弹,只返回成功 - // 销毁之前创建的射弹对象,因为我们不需要它 - return true; - } - - /// - /// 模拟最终射击成功的情况 - /// - private bool SimulateFinalShotSuccess(Vector3 drawPos, IntVec3 targetCell, LocalTargetInfo target, ProjectileHitFlags hitFlags, bool preventFriendlyFire, Thing equipmentSource, ThingDef targetCoverDef = null) - { - // 这里不实际发射射弹,只返回成功 - // 销毁之前创建的射弹对象,因为我们不需要它 - return true; + base.DrawHighlight(target); + + // 可以绘制距离指示,但不绘制射击预览 } /// @@ -209,14 +74,89 @@ namespace WulaFallenEmpire foreach (var turretComp in turretComps) { - // 设置集中火力目标 - Comp_MultiTurretGun.focusTarget = currentTarget; - Comp_MultiTurretGun.lastFocusSetTick = Find.TickManager.TicksGame; - Comp_MultiTurretGun.lastFocusPawn = pawn; - - // 强制炮塔立即重新索敌,以便它们能检测到新的集中火力目标 - turretComp.TryAcquireTarget(); + if (turretComp != null) + { + // 设置集中火力目标 + Comp_MultiTurretGun.focusTarget = currentTarget; + Comp_MultiTurretGun.lastFocusSetTick = Find.TickManager.TicksGame; + Comp_MultiTurretGun.lastFocusPawn = pawn; + + // 强制炮塔立即重新索敌,以便它们能检测到新的集中火力目标 + turretComp.TryAcquireTarget(); + } } + + // 记录日志 + if (Prefs.DevMode) + { + Log.Message($"[Verb_RangeChecker] {pawn.LabelShort} set focus target to {currentTarget}"); + } + } + } + + /// + /// 重写可用性检查,确保只有符合条件的Pawn才能使用 + /// + public override bool Available() + { + if (!base.Available()) + return false; + + // 额外的检查:确保有炮塔组件 + if (caster is Pawn pawn) + { + var turretComps = pawn.GetComps(); + if (turretComps == null ) + return false; + } + + return true; + } + + /// + /// 重写验证方法,添加额外的距离检查 + /// + public override bool CanHitTarget(LocalTargetInfo targ) + { + if (!base.CanHitTarget(targ)) + return false; + + // 检查距离 + float distance = caster.Position.DistanceTo(targ.Cell); + if (distance > verbProps.range) + return false; + + // 检查最小距离 + if (distance < verbProps.minRange) + return false; + + return true; + } + + /// + /// 重写目标高亮显示 + /// + public override void OrderForceTarget(LocalTargetInfo target) + { + if (CanHitTarget(target)) + { + base.OrderForceTarget(target); + UpdateTurretFocusTargets(); + } + } + + /// + /// 重写,确保不产生任何射击效果 + /// + public override void Notify_EquipmentLost() + { + base.Notify_EquipmentLost(); + + // 清理焦点目标 + if (caster is Pawn pawn) + { + Comp_MultiTurretGun.lastFocusPawn = null; + Comp_MultiTurretGun.focusTarget = LocalTargetInfo.Invalid; } } } @@ -230,8 +170,21 @@ namespace WulaFallenEmpire { verbClass = typeof(Verb_RangeChecker); - // 默认设置为不发射射弹 + // 设置为不发射射弹 defaultProjectile = null; + + // 设置无噪音 + soundCast = null; + soundCastTail = null; + + // 无视觉效果 + muzzleFlashScale = 0f; + + // 无预热时间 + warmupTime = 0f; + + // 无冷却时间 + defaultCooldownTime = 0f; } } } diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 b/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 index 71fde9ae..0f602d9e 100644 Binary files a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 and b/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 differ