暂存
This commit is contained in:
Binary file not shown.
@@ -103,7 +103,7 @@
|
|||||||
</additionalHediffs>
|
</additionalHediffs>
|
||||||
</DamageDef>
|
</DamageDef>
|
||||||
|
|
||||||
<DamageDef ParentName="Wula_Dark_Matter_Beam_DMG">
|
<DamageDef>
|
||||||
<defName>ARA_Psi_Damage</defName>
|
<defName>ARA_Psi_Damage</defName>
|
||||||
<ignoreShields>true</ignoreShields>
|
<ignoreShields>true</ignoreShields>
|
||||||
<igniteChanceByTargetFlammability>
|
<igniteChanceByTargetFlammability>
|
||||||
|
|||||||
@@ -17,13 +17,17 @@
|
|||||||
<hitPoints>1500</hitPoints>
|
<hitPoints>1500</hitPoints>
|
||||||
<rechargeDelay>3200</rechargeDelay>
|
<rechargeDelay>3200</rechargeDelay>
|
||||||
<rechargeHitPointsIntervalTicks>60</rechargeHitPointsIntervalTicks>
|
<rechargeHitPointsIntervalTicks>60</rechargeHitPointsIntervalTicks>
|
||||||
|
|
||||||
<!-- Psyfocus/Entropy Mechanics -->
|
<!-- Psyfocus/Entropy Mechanics -->
|
||||||
<!-- Removed psyfocusCostForFullRecharge as it's now gradual -->
|
|
||||||
<psyfocusCostPerInterval>0.001</psyfocusCostPerInterval> <!-- e.g., 0.1% of max psyfocus per recharge interval -->
|
<psyfocusCostPerInterval>0.001</psyfocusCostPerInterval> <!-- e.g., 0.1% of max psyfocus per recharge interval -->
|
||||||
<entropyGainPerDamage>0.1</entropyGainPerDamage> <!-- 1 entropy per 2 damage -->
|
<entropyGainPerDamage>0.1</entropyGainPerDamage> <!-- 1 entropy per 2 damage -->
|
||||||
<hitPointsPctPerInterval>0.01</hitPointsPctPerInterval> <!-- Restore 1% of max HP per interval -->
|
<hitPointsPctPerInterval>0.01</hitPointsPctPerInterval> <!-- Restore 1% of max HP per interval -->
|
||||||
|
|
||||||
|
<!-- Projectile interception properties -->
|
||||||
|
<interceptGroundProjectiles>true</interceptGroundProjectiles>
|
||||||
|
<interceptNonHostileProjectiles>false</interceptNonHostileProjectiles>
|
||||||
|
<interceptAirProjectiles>true</interceptAirProjectiles>
|
||||||
|
|
||||||
<!-- Visuals and Sound -->
|
<!-- Visuals and Sound -->
|
||||||
<color>(0.5, 0.3, 0.9, 0.5)</color>
|
<color>(0.5, 0.3, 0.9, 0.5)</color>
|
||||||
<interceptEffecter>Interceptor_BlockedProjectile</interceptEffecter>
|
<interceptEffecter>Interceptor_BlockedProjectile</interceptEffecter>
|
||||||
|
|||||||
@@ -430,10 +430,10 @@
|
|||||||
<WorkToMake>1300</WorkToMake>
|
<WorkToMake>1300</WorkToMake>
|
||||||
<!-- <MarketValue>370</MarketValue> -->
|
<!-- <MarketValue>370</MarketValue> -->
|
||||||
<Mass>3.5</Mass>
|
<Mass>3.5</Mass>
|
||||||
<AccuracyTouch>0.35</AccuracyTouch>
|
<AccuracyTouch>0.60</AccuracyTouch>
|
||||||
<AccuracyShort>0.5</AccuracyShort>
|
<AccuracyShort>0.70</AccuracyShort>
|
||||||
<AccuracyMedium>0.85</AccuracyMedium>
|
<AccuracyMedium>0.65</AccuracyMedium>
|
||||||
<AccuracyLong>1</AccuracyLong>
|
<AccuracyLong>0.55</AccuracyLong>
|
||||||
<RangedWeapon_Cooldown>2.2</RangedWeapon_Cooldown>
|
<RangedWeapon_Cooldown>2.2</RangedWeapon_Cooldown>
|
||||||
</statBases>
|
</statBases>
|
||||||
<verbs>
|
<verbs>
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ namespace ArachnaeSwarm
|
|||||||
public int rechargeHitPointsIntervalTicks = 60; // Ticks to restore 1 HP
|
public int rechargeHitPointsIntervalTicks = 60; // Ticks to restore 1 HP
|
||||||
|
|
||||||
// New properties for psyfocus/entropy mechanics
|
// New properties for psyfocus/entropy mechanics
|
||||||
// Removed psyfocusCostForFullRecharge
|
|
||||||
public float psyfocusCostPerInterval = 0.001f; // e.g., 0.1% of max psyfocus per recharge interval
|
public float psyfocusCostPerInterval = 0.001f; // e.g., 0.1% of max psyfocus per recharge interval
|
||||||
public float entropyGainPerDamage = 0.5f; // For self
|
public float entropyGainPerDamage = 0.5f; // For self
|
||||||
// Removed entropyGainPerAllyDamage
|
// Removed entropyGainPerAllyDamage
|
||||||
@@ -22,6 +21,11 @@ namespace ArachnaeSwarm
|
|||||||
public EffecterDef absorbEffecter;
|
public EffecterDef absorbEffecter;
|
||||||
// Removed transferAllyDamage
|
// Removed transferAllyDamage
|
||||||
|
|
||||||
|
// Projectile interception properties
|
||||||
|
public bool interceptGroundProjectiles = false;
|
||||||
|
public bool interceptNonHostileProjectiles = false;
|
||||||
|
public bool interceptAirProjectiles = true;
|
||||||
|
|
||||||
public EffecterDef interceptEffecter;
|
public EffecterDef interceptEffecter;
|
||||||
public EffecterDef breakEffecter;
|
public EffecterDef breakEffecter;
|
||||||
public EffecterDef reactivateEffecter;
|
public EffecterDef reactivateEffecter;
|
||||||
@@ -134,9 +138,10 @@ namespace ArachnaeSwarm
|
|||||||
{
|
{
|
||||||
if (!Active) return false;
|
if (!Active) return false;
|
||||||
|
|
||||||
// We now intercept all projectiles, the filter will be done by the PostPreApplyDamage on self
|
// Filter projectile types based on properties
|
||||||
// and the TryAbsorbDamageForAllyOnly for allies.
|
if (projectile.def.projectile.flyOverhead && !Props.interceptAirProjectiles) return false;
|
||||||
// This method is only for projectile visual/sound and psyfocus cost.
|
if (!projectile.def.projectile.flyOverhead && !Props.interceptGroundProjectiles) return false;
|
||||||
|
if (projectile.Launcher != null && !projectile.Launcher.HostileTo(PawnOwner.Faction) && !Props.interceptNonHostileProjectiles) return false;
|
||||||
|
|
||||||
// --- Interception Success ---
|
// --- Interception Success ---
|
||||||
lastInterceptTicks = Find.TickManager.TicksGame;
|
lastInterceptTicks = Find.TickManager.TicksGame;
|
||||||
|
|||||||
Reference in New Issue
Block a user