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

View File

@@ -114,4 +114,52 @@
</li>
</stages>
</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>

View File

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

View File

@@ -26,6 +26,8 @@ namespace WulaFallenEmpire
public int conductNum;
public bool conductFriendly = false;
public bool conductHostile = true;
}
public class Verb_ShootArc : Verb
@@ -42,7 +44,16 @@ namespace WulaFallenEmpire
{
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
{
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)
{
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;
}