diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index 4edd339..20218a0 100644 Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ diff --git a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml index 14cf10b..ea14298 100644 --- a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml +++ b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml @@ -1904,4 +1904,87 @@ + + + + ARA_Incubator_5_EliteReward_Jump + + 该阿拉克涅督虫变异过的恐怖肌肉可以像弹簧一样将其弹射出去。 + ArachnaeSwarm/UI/Abilities/ARA_Fighter_Invisibility_jump + 6000 + false + false + + Verb_CastAbilityJump + false + false + + 18 + false + Longjump_Jump + Longjump_Land + + true + false + false + + + CastJump + +
  • + 饮食 + true + Food + 0.1 + 营养值不足,需要进食 +
  • +
    +
    + + ARA_Incubator_5_EliteReward_Charge + + 对目标发起蓄势冲撞,对路径上的一切造成伤害。在冲击中途经的距离越远,伤害越高。 + ArachnaeSwarm/UI/Abilities/ARA_Ability_TrackingCharge + 6000 + true + false + + ArachnaeSwarm.Verb_CastAbilityTrackingCharge + + false + + true + true + true + true + false + + 16 + 1.0 + + +
  • + 1.5 + 10 + 1.2 + 6 + Demolish + ARA_Flyer_TrackingCharge + 1.5 + Pawn_Melee_BigBash_HitPawn + true +
  • +
  • + WarTrumpet + 20 +
  • +
  • + 饮食 + true + Food + 0.2 + 营养值不足,需要进食 +
  • +
    +
    \ No newline at end of file diff --git a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Incubator_Reward.xml b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Incubator_Reward.xml index f955fcf..25494a3 100644 --- a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Incubator_Reward.xml +++ b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Incubator_Reward.xml @@ -331,6 +331,7 @@
  • 3 + ARA_AcidBurn
  • @@ -393,4 +394,28 @@ + + ARA_Incubator_5_EliteReward_Hediffs + + 该阿拉克涅督虫的肌群强壮得已经无法使用常理解释了,似乎只需要轻轻地挥动鳌爪,最坚固的城墙也会被劈开裂口——督虫还藉由这种强大的生理能力获得了多个体术技能。\n\n这个稀有突变是强壮肌肉的变种。 + HediffWithComps + false + (0.8, 0.6, 0.0) + true + +
  • + + 5 + +
  • +
    + +
  • + +
  • ARA_Incubator_5_EliteReward_Jump
  • +
  • ARA_Incubator_5_EliteReward_Charge
  • + + +
    +
    \ No newline at end of file diff --git a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml index b117cae..4a59c54 100644 --- a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml +++ b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml @@ -190,6 +190,7 @@ 2 1 false + ARA_Normal_Node_NameMaker
  • ARA_Suicide_Ability
  • ARA_RaceBaseSwarmProduceOff
  • @@ -699,4 +700,52 @@
  • ARA_Ability_SlayerCharge
  • - + + + ARA_Normal_Node_NameMaker + + +
  • r_name->[ARA_Normal_Node_FirstName] '[ARA_Normal_Node_nickName]' [ARA_Normal_Node_LastName]
  • +
  • ARA_Normal_Node_nickName->[ARA_Normal_Node_nickName_Sub]
  • +
  • ARA_Normal_Node_FirstName->Nodeunit
  • +
  • ARA_Normal_Node_LastName->Arachnae
  • +
  • ARA_Normal_Node_nickName_Sub->[ARA_Normal_Node_nickName_A][ARA_Normal_Node_nickName_B]-[ARA_Normal_Node_nickName_C][ARA_Normal_Node_nickName_D][ARA_Normal_Node_nickName_E]
  • +
  • ARA_Normal_Node_nickName_A->P
  • +
  • ARA_Normal_Node_nickName_A->R
  • +
  • ARA_Normal_Node_nickName_A->X
  • +
  • ARA_Normal_Node_nickName_A->H
  • +
  • ARA_Normal_Node_nickName_A->D
  • +
  • ARA_Normal_Node_nickName_B->A
  • +
  • ARA_Normal_Node_nickName_B->C
  • +
  • ARA_Normal_Node_nickName_B->I
  • +
  • ARA_Normal_Node_nickName_B->Y
  • +
  • ARA_Normal_Node_nickName_C->1
  • +
  • ARA_Normal_Node_nickName_C->2
  • +
  • ARA_Normal_Node_nickName_C->3
  • +
  • ARA_Normal_Node_nickName_C->4
  • +
  • ARA_Normal_Node_nickName_C->5
  • +
  • ARA_Normal_Node_nickName_C->6
  • +
  • ARA_Normal_Node_nickName_D->1
  • +
  • ARA_Normal_Node_nickName_D->2
  • +
  • ARA_Normal_Node_nickName_D->3
  • +
  • ARA_Normal_Node_nickName_D->4
  • +
  • ARA_Normal_Node_nickName_D->5
  • +
  • ARA_Normal_Node_nickName_D->6
  • +
  • ARA_Normal_Node_nickName_D->7
  • +
  • ARA_Normal_Node_nickName_D->8
  • +
  • ARA_Normal_Node_nickName_D->9
  • +
  • ARA_Normal_Node_nickName_D->0
  • +
  • ARA_Normal_Node_nickName_E->1
  • +
  • ARA_Normal_Node_nickName_E->2
  • +
  • ARA_Normal_Node_nickName_E->3
  • +
  • ARA_Normal_Node_nickName_E->4
  • +
  • ARA_Normal_Node_nickName_E->5
  • +
  • ARA_Normal_Node_nickName_E->6
  • +
  • ARA_Normal_Node_nickName_E->7
  • +
  • ARA_Normal_Node_nickName_E->8
  • +
  • ARA_Normal_Node_nickName_E->9
  • +
  • ARA_Normal_Node_nickName_E->0
  • +
    +
    +
    + \ No newline at end of file diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml index 9e1eecc..6f5a3a1 100644 --- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml +++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml @@ -610,6 +610,7 @@ false 1 + diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/DefInjected/RulePackDefs/ARA_PawnKinds.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/DefInjected/RulePackDefs/ARA_PawnKinds.xml new file mode 100644 index 0000000..0f042fd --- /dev/null +++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/DefInjected/RulePackDefs/ARA_PawnKinds.xml @@ -0,0 +1,45 @@ + + + +
  • r_name->[ARA_Normal_Node_FirstName] '[ARA_Normal_Node_nickName]' [ARA_Normal_Node_LastName]
  • +
  • ARA_Normal_Node_nickName->[ARA_Normal_Node_nickName_Sub]
  • +
  • ARA_Normal_Node_FirstName->节点生物
  • +
  • ARA_Normal_Node_LastName->阿拉克涅
  • +
  • ARA_Normal_Node_nickName_Sub->[ARA_Normal_Node_nickName_A][ARA_Normal_Node_nickName_B]-[ARA_Normal_Node_nickName_C][ARA_Normal_Node_nickName_D][ARA_Normal_Node_nickName_E]
  • +
  • ARA_Normal_Node_nickName_A->P
  • +
  • ARA_Normal_Node_nickName_A->R
  • +
  • ARA_Normal_Node_nickName_A->X
  • +
  • ARA_Normal_Node_nickName_A->H
  • +
  • ARA_Normal_Node_nickName_A->D
  • +
  • ARA_Normal_Node_nickName_B->A
  • +
  • ARA_Normal_Node_nickName_B->C
  • +
  • ARA_Normal_Node_nickName_B->I
  • +
  • ARA_Normal_Node_nickName_B->Y
  • +
  • ARA_Normal_Node_nickName_C->1
  • +
  • ARA_Normal_Node_nickName_C->2
  • +
  • ARA_Normal_Node_nickName_C->3
  • +
  • ARA_Normal_Node_nickName_C->4
  • +
  • ARA_Normal_Node_nickName_C->5
  • +
  • ARA_Normal_Node_nickName_C->6
  • +
  • ARA_Normal_Node_nickName_D->1
  • +
  • ARA_Normal_Node_nickName_D->2
  • +
  • ARA_Normal_Node_nickName_D->3
  • +
  • ARA_Normal_Node_nickName_D->4
  • +
  • ARA_Normal_Node_nickName_D->5
  • +
  • ARA_Normal_Node_nickName_D->6
  • +
  • ARA_Normal_Node_nickName_D->7
  • +
  • ARA_Normal_Node_nickName_D->8
  • +
  • ARA_Normal_Node_nickName_D->9
  • +
  • ARA_Normal_Node_nickName_D->0
  • +
  • ARA_Normal_Node_nickName_E->1
  • +
  • ARA_Normal_Node_nickName_E->2
  • +
  • ARA_Normal_Node_nickName_E->3
  • +
  • ARA_Normal_Node_nickName_E->4
  • +
  • ARA_Normal_Node_nickName_E->5
  • +
  • ARA_Normal_Node_nickName_E->6
  • +
  • ARA_Normal_Node_nickName_E->7
  • +
  • ARA_Normal_Node_nickName_E->8
  • +
  • ARA_Normal_Node_nickName_E->9
  • +
  • ARA_Normal_Node_nickName_E->0
  • +
    +
    diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo index 0507350..9fc5e57 100644 Binary files a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo and b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo differ diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json index 8c32087..4f7488c 100644 --- a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json +++ b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json @@ -7,11 +7,11 @@ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\hediffcomp_reflectmeleedamage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\ara_defof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ara_defof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:ara_defof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\jobs\\jobdriver_supercarry\\jobdriver_supercarry.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobs\\jobdriver_supercarry\\jobdriver_supercarry.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_supercarry\\jobdriver_supercarry.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { @@ -122,8 +122,7 @@ "RelativeToolTip": "ARA_DefOf.cs", "ViewState": "AgIAAFQAAAAAAAAAAAAUwGcAAAAmAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-03-24T08:34:43.383Z", - "EditorCaption": "" + "WhenOpened": "2026-03-24T08:34:43.383Z" }, { "$type": "Document", @@ -133,7 +132,7 @@ "RelativeDocumentMoniker": "Hediffs\\HediffComp_ReflectMeleeDamage.cs", "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\HediffComp_ReflectMeleeDamage.cs", "RelativeToolTip": "Hediffs\\HediffComp_ReflectMeleeDamage.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAA4AAAAAAAAAA==", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAoAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2026-03-24T08:33:52.75Z", "EditorCaption": "" @@ -148,8 +147,7 @@ "RelativeToolTip": "Jobs\\JobDriver_SuperCarry\\JobDriver_SuperCarry.cs", "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAA3AAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2026-03-06T03:21:58.524Z", - "EditorCaption": "" + "WhenOpened": "2026-03-06T03:21:58.524Z" }, { "$type": "Document", diff --git a/Source/ArachnaeSwarm/Hediffs/HediffComp_ReflectMeleeDamage.cs b/Source/ArachnaeSwarm/Hediffs/HediffComp_ReflectMeleeDamage.cs index 3e444e6..0c46d14 100644 --- a/Source/ArachnaeSwarm/Hediffs/HediffComp_ReflectMeleeDamage.cs +++ b/Source/ArachnaeSwarm/Hediffs/HediffComp_ReflectMeleeDamage.cs @@ -13,11 +13,11 @@ namespace ArachnaeSwarmVerse public class HediffCompProperties_ReflectMeleeDamage : HediffCompProperties { public float reflectMultiplier = 3.0f; // 反射倍数,默认300% - public bool showReflectionEffect = true; // 是否显示反射效果 public bool reflectOnlyMelee = true; // 是否只反射近战伤害 public bool includeToolBasedRanged = false; // 是否包含使用工具的远程伤害 public float minDamageToReflect = 0.1f; // 最小反射伤害阈值 - + public string fixedDamageDefName = null; // 固定伤害类型的def名称,如果不为null,则反射伤害将使用此def + public HediffCompProperties_ReflectMeleeDamage() { this.compClass = typeof(HediffComp_ReflectMeleeDamage); @@ -127,7 +127,8 @@ namespace ArachnaeSwarmVerse { isProcessingReflection = true; lastReflectionTick = Find.TickManager.TicksGame; - + DamageDef damageDef = originalDinfo.Def; + // 计算反射伤害 float reflectedAmount = originalDinfo.Amount * ReflectMultiplier; @@ -143,10 +144,23 @@ namespace ArachnaeSwarmVerse { return; } - + + if (Props.fixedDamageDefName != null) + { + DamageDef fixedDef = DefDatabase.GetNamedSilentFail(Props.fixedDamageDefName); + if (fixedDef != null) + { + damageDef = fixedDef; + } + else + { + Log.Warning($"[ReflectMeleeDamage] Could not find DamageDef with name '{Props.fixedDamageDefName}' for reflection. Using original damage def."); + } + } + // 创建反射伤害信息 DamageInfo reflectedDinfo = new DamageInfo( - def: originalDinfo.Def, + def: damageDef, amount: reflectedAmount, armorPenetration: originalDinfo.ArmorPenetrationInt, angle: Rand.Range(0, 359), @@ -177,12 +191,6 @@ namespace ArachnaeSwarmVerse // 对攻击者造成伤害 attacker.TakeDamage(reflectedDinfo); - // 显示反射效果 - if (Props.showReflectionEffect) - { - ShowReflectionEffect(pawn, attacker); - } - // 发送消息 if (pawn.Faction == Faction.OfPlayer && attacker.Faction != Faction.OfPlayer) { @@ -207,43 +215,6 @@ namespace ArachnaeSwarmVerse } } - /// - /// 显示反射效果 - /// - private void ShowReflectionEffect(Pawn pawn, Thing attacker) - { - try - { - // 显示反弹粒子 - if (pawn.Spawned && attacker.Spawned && pawn.Map == attacker.Map) - { - Vector3 startPos = pawn.DrawPos; - Vector3 endPos = attacker.DrawPos; - - // 创建一个从反射者到攻击者的弹道效果 - for (int i = 0; i < 3; i++) - { - MoteThrown mote = (MoteThrown)ThingMaker.MakeThing(ARA_ThingDefOf.Mote_SparkSimple, null); - mote.Scale = Rand.Range(0.5f, 0.8f); - mote.exactPosition = startPos + new Vector3( - Rand.Range(-0.3f, 0.3f), - 0f, - Rand.Range(-0.3f, 0.3f) - ); - mote.SetVelocity( - (endPos - startPos).normalized.x * Rand.Range(15f, 25f), - 0f - ); - GenSpawn.Spawn(mote, pawn.Position, pawn.Map); - } - } - } - catch (Exception ex) - { - Log.Error($"[ReflectMeleeDamage] Error showing reflection effect: {ex}"); - } - } - /// /// 在Pawn受到伤害后调用 /// diff --git a/非公开资源/Content/Textures/Things/ARA_HiveNode/Bodies_new/Naked_Thin_east.sai2 b/非公开资源/Content/Textures/Things/ARA_HiveNode/Bodies_new/Naked_Thin_east.sai2 index ec544e0..9009a6d 100644 Binary files a/非公开资源/Content/Textures/Things/ARA_HiveNode/Bodies_new/Naked_Thin_east.sai2 and b/非公开资源/Content/Textures/Things/ARA_HiveNode/Bodies_new/Naked_Thin_east.sai2 differ