This commit is contained in:
2025-08-03 21:38:05 +08:00
parent 3315d33c0b
commit fd6ed15684
5 changed files with 89 additions and 15 deletions

Binary file not shown.

View File

@@ -108,19 +108,25 @@
</additionalHediffs> </additionalHediffs>
</DamageDef> </DamageDef>
<DamageDef ParentName="Bomb"> <DamageDef>
<defName>WULA_SP_Live_Shelter_Heal</defName> <defName>WULA_SP_Live_Shelter_Heal</defName>
<label>疗愈</label> <label>疗愈</label>
<deathMessage>{0} 过奶死了。</deathMessage> <workerClass>DamageWorker_AddInjury</workerClass>
<defaultDamage>0</defaultDamage> <externalViolence>true</externalViolence>
<deathMessage>{0} 被奶死了。</deathMessage>
<harmsHealth>true</harmsHealth>
<makesBlood>false</makesBlood>
<consideredHelpful>true</consideredHelpful>
<defaultDamage>1</defaultDamage>
<defaultStoppingPower>0</defaultStoppingPower> <defaultStoppingPower>0</defaultStoppingPower>
<defaultArmorPenetration>3000</defaultArmorPenetration> <defaultArmorPenetration>9999</defaultArmorPenetration>
<hediff>Burn</hediff> <buildingDamageFactorImpassable>0</buildingDamageFactorImpassable>
<armorCategory>Heat</armorCategory> <buildingDamageFactorPassable>0</buildingDamageFactorPassable>
<buildingDamageFactorImpassable>10</buildingDamageFactorImpassable> <additionalHediffs>
<buildingDamageFactorPassable>10</buildingDamageFactorPassable> <li>
<additionalHediffsThisPart> <hediff>WULA_Psi_Regeneration</hediff>
<li>Regeneration</li> <severityPerDamageDealt>0.5</severityPerDamageDealt>
</additionalHediffsThisPart> </li>
</additionalHediffs>
</DamageDef> </DamageDef>
</Defs> </Defs>

View File

@@ -114,4 +114,52 @@
</li> </li>
</stages> </stages>
</HediffDef> </HediffDef>
<HediffDef>
<defName>WULA_Psi_Regeneration</defName>
<label>灵能再生</label>
<description>在强大的灵能术式影响下,这个生物正在以一种快到不可思议的速度再生。他们几乎能在短时间内治愈任何伤口。</description>
<isBad>false</isBad>
<initialSeverity>1</initialSeverity>
<defaultLabelColor>(1, 1, 0.8)</defaultLabelColor>
<hediffClass>HediffWithComps</hediffClass>
<stages>
<li>
<minSeverity>0</minSeverity>
<label>术式强度:极弱</label>
<regeneration>100</regeneration>
</li>
<li>
<minSeverity>0.5</minSeverity>
<label>术式强度:弱</label>
<regeneration>200</regeneration>
</li>
<li>
<minSeverity>1.0</minSeverity>
<label>术式强度:较弱</label>
<regeneration>300</regeneration>
</li>
<li>
<minSeverity>1.5</minSeverity>
<label>术式强度:较强</label>
<regeneration>400</regeneration>
</li>
<li>
<minSeverity>2.0</minSeverity>
<label>术式强度:强</label>
<regeneration>500</regeneration>
</li>
<li>
<minSeverity>2.5</minSeverity>
<label>术式强度:极强</label>
<regeneration>600</regeneration>
</li>
</stages>
<comps>
<li Class="HediffCompProperties_SeverityPerDay">
<severityPerDay>-5</severityPerDay>
</li>
<li Class="HediffCompProperties_DisappearsOnDeath"/>
</comps>
</HediffDef>
</Defs> </Defs>

View File

@@ -395,7 +395,7 @@
<verbClass>WulaFallenEmpire.Verb_ShootArc</verbClass> <verbClass>WulaFallenEmpire.Verb_ShootArc</verbClass>
<hasStandardCommand>true</hasStandardCommand> <hasStandardCommand>true</hasStandardCommand>
<damageDef>WULA_SP_Live_Shelter_Heal</damageDef> <damageDef>WULA_SP_Live_Shelter_Heal</damageDef>
<damageAmount>0</damageAmount> <damageAmount>1.0</damageAmount>
<EMPDamageAmount>0</EMPDamageAmount> <EMPDamageAmount>0</EMPDamageAmount>
<warmupTime>4</warmupTime> <warmupTime>4</warmupTime>
<range>20</range> <range>20</range>
@@ -406,6 +406,7 @@
<muzzleFlashScale>9</muzzleFlashScale> <muzzleFlashScale>9</muzzleFlashScale>
<isConductible>True</isConductible> <isConductible>True</isConductible>
<conductFriendly>True</conductFriendly> <conductFriendly>True</conductFriendly>
<conductHostile>false</conductHostile>
<conductNum>3</conductNum> <conductNum>3</conductNum>
<beamMoteDef>WULA_SP_Spear_Impale_ArcBeam</beamMoteDef> <beamMoteDef>WULA_SP_Spear_Impale_ArcBeam</beamMoteDef>
<aimingChargeMote>Mote_HellsphereCannon_Charge</aimingChargeMote> <aimingChargeMote>Mote_HellsphereCannon_Charge</aimingChargeMote>

View File

@@ -26,6 +26,8 @@ namespace WulaFallenEmpire
public int conductNum; public int conductNum;
public bool conductFriendly = false; public bool conductFriendly = false;
public bool conductHostile = true;
} }
public class Verb_ShootArc : Verb public class Verb_ShootArc : Verb
@@ -42,7 +44,16 @@ namespace WulaFallenEmpire
{ {
get get
{ {
return (this.Props.damageAmount > 0) ? this.Props.damageAmount : this.verbProps.beamDamageDef.defaultDamage; if (this.Props.damageAmount > 0)
{
return this.Props.damageAmount;
}
if (this.verbProps.beamDamageDef != null)
{
return this.verbProps.beamDamageDef.defaultDamage;
}
Log.ErrorOnce(string.Format("Verb_ShootArc on {0} has no damageAmount and no beamDamageDef.", (this.caster != null) ? this.caster.def.defName : "null"), this.GetHashCode());
return 0;
} }
} }
@@ -50,7 +61,15 @@ namespace WulaFallenEmpire
{ {
get get
{ {
return (this.Props.armorPenetration > 0f) ? this.Props.armorPenetration : this.verbProps.beamDamageDef.defaultArmorPenetration; if (this.Props.armorPenetration > 0f)
{
return this.Props.armorPenetration;
}
if (this.verbProps.beamDamageDef != null)
{
return this.verbProps.beamDamageDef.defaultArmorPenetration;
}
return 0f;
} }
} }
@@ -122,7 +141,7 @@ namespace WulaFallenEmpire
if (list[num] is Pawn p) if (list[num] is Pawn p)
{ {
bool isFriendly = p.Faction != null && casterPawn.Faction != null && !p.Faction.HostileTo(casterPawn.Faction); bool isFriendly = p.Faction != null && casterPawn.Faction != null && !p.Faction.HostileTo(casterPawn.Faction);
if (!this.Props.conductFriendly && isFriendly) if ((!this.Props.conductFriendly && isFriendly) || (!this.Props.conductHostile && p.HostileTo(casterPawn)))
{ {
continue; continue;
} }