• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags

Frequently used words (click to add to your profile)

javaandroidc++linuxc#windowsobjective-ccocoaqtpython誰得phprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

VS plugin mod for Basic Armour


Commit MetaInfo

Révisioncf244e8fdd98e6feed4158121370f24665bbe65c (tree)
l'heure2019-05-17 08:56:46
Auteurmelchior <melchior@user...>
Commitermelchior

Message de Log

* EntityArmourPlayer.cs: Armour item decay code added
* clothes-head-potmetal.json,
* clothes-upperbodyover-vest.json: durability added

Change Summary

Modification

--- a/ArmourMod/Armour/EntityArmourPlayer.cs
+++ b/ArmourMod/Armour/EntityArmourPlayer.cs
@@ -3,7 +3,8 @@ using System.Collections.Generic;
33 using System.Linq;
44
55 using Vintagestory.API.Common;
6-using Vintagestory .API.Client;
6+using Vintagestory.API.Client;
7+using Vintagestory.API.Server;
78
89 namespace ArmourMod
910 {
@@ -11,6 +12,7 @@ namespace ArmourMod
1112 {
1213 protected ICoreAPI CoreAPI;
1314 protected ICoreClientAPI ClientAPI;
15+ protected ICoreServerAPI ServerAPI;
1416 protected ILogger Logger;
1517
1618 //Damage Filter list: BY Inventory SLOT#
@@ -39,6 +41,11 @@ namespace ArmourMod
3941 this.RenderableWornArmours = new Dictionary<EnumCharacterDressType, Item>(); // BEFORE RENDERER GETS THERE!
4042 Logger.VerboseDebug("Renderable Worn Armours Dict assigned");
4143 }
44+
45+ if (CoreAPI.Side.IsServer( )) {
46+ this.ServerAPI = api as ICoreServerAPI;
47+
48+ }
4249 }
4350
4451 public override void OnEntityLoaded()
@@ -121,7 +128,7 @@ namespace ArmourMod
121128 public override void Revive()
122129 {
123130 base.Revive();
124- base.Api.World.Logger.VerboseDebug( "Respawned, alive again..." );
131+ Logger.VerboseDebug( "Respawned, alive again..." );
125132 }
126133
127134 /// <summary>
@@ -132,49 +139,62 @@ namespace ArmourMod
132139 /// <param name="damage">Damage.</param>
133140 public override bool ReceiveDamage(DamageSource damageSource, float damage)
134141 {
135- float beforeDamage = damage;
136- //TODO: evaluate postion vector of strike to determine WHEN position of armour offers protection
142+ if (damageSource.Type != EnumDamageType.Heal)
143+ {
144+ float beforeDamage = damage;
145+ //TODO: evaluate postion vector of strike to determine WHEN position of armour offers protection
137146
138- if (DamageFilters.Count > 0) {
139- //Evaluate damge type
140- //Reduce by any applicable filter(s)
141- //Pass along
147+ if (DamageFilters.Count > 0) {
148+ //Evaluate damge type
149+ //Reduce by any applicable filter(s)
150+ //Pass along
142151
143- #if DEBUG
144- Logger.VerboseDebug("{0} has Damage Filters#{1}", this.PlayerUID, DamageFilters.Count);
145- #endif
152+ #if DEBUG
153+ Logger.VerboseDebug("{0} has Damage Filters#{1}", this.PlayerUID, DamageFilters.Count);
154+ #endif
146155
147- switch (damageSource.Type) {
156+ switch (damageSource.Type) {
148157
149- case EnumDamageType.BluntAttack:
150- damage -= damage * bluntPercentReduction;
151- break;
158+ case EnumDamageType.BluntAttack:
159+ damage -= damage * bluntPercentReduction;
160+ break;
152161
153- case EnumDamageType.PiercingAttack:
154- damage -= damage * piercingPercentReduction;
155- break;
162+ case EnumDamageType.PiercingAttack:
163+ damage -= damage * piercingPercentReduction;
164+ break;
156165
157- case EnumDamageType.SlashingAttack:
158- damage -= damage * slashingPercentReduction;
159- break;
166+ case EnumDamageType.SlashingAttack:
167+ damage -= damage * slashingPercentReduction;
168+ break;
160169
161- case EnumDamageType.Crushing:
162- damage -= damage * crushingPercentReduction;
163- break;
170+ case EnumDamageType.Crushing:
171+ damage -= damage * crushingPercentReduction;
172+ break;
164173
165- case EnumDamageType.Fire:
166- damage -= damage * firePercentReduction;
167- break;
174+ case EnumDamageType.Fire:
175+ damage -= damage * firePercentReduction;
176+ break;
168177
169- default:
178+ default:
170179
171- break;
180+ break;
181+ }
172182 }
173- }
174183
175- #if DEBUG
176- Logger.VerboseDebug("Reduced: {0} Dmg from {2}; [{1}]", damage, damageSource.Type.ToString( ), beforeDamage);
177- #endif
184+ #if DEBUG
185+ Logger.VerboseDebug("Reduced: {0} Dmg from {2}; [{1}]", damage, damageSource.Type.ToString( ), beforeDamage);
186+ #endif
187+
188+ //All worn Armours adsorb damage themselves...
189+ List<int> slotsList = this.DamageFilters.Keys.ToList();
190+
191+ foreach (var slotId in slotsList) {
192+ ItemSlot slot = this.GearInventory[slotId];
193+ Item armourItem = slot.Itemstack.Item;
194+
195+ armourItem.DamageItem(ServerAPI.World, damageSource.SourceEntity, slot, 1);
196+ }
197+ }
178198
179199 return base.ReceiveDamage(damageSource, damage);
180200 }
--- a/ArmourMod/assets/armourmod/itemtypes/wearable/clothes-head-potmetal.json
+++ b/ArmourMod/assets/armourmod/itemtypes/wearable/clothes-head-potmetal.json
@@ -13,6 +13,7 @@
1313 shapeByType:{
1414 "*-potmetal": { base: "bunnyviking:item/armament/armour/helmpot" },
1515 },
16+ durability: 20,
1617 texturesByType: {
1718 "*-potmetal":{
1819 dummy:{ base: "bunnyviking:item/armament/armour/transparent"},
--- a/ArmourMod/assets/armourmod/itemtypes/wearable/clothes-upperbodyover-vest.json
+++ b/ArmourMod/assets/armourmod/itemtypes/wearable/clothes-upperbodyover-vest.json
@@ -25,6 +25,15 @@
2525 "*-chain": { base: "bunnyviking:item/armament/armour/armourchain" },
2626 "*-studdedleather": { base: "bunnyviking:item/armament/armour/armourstuddedleather" }
2727 },
28+ durabilitybytype: {
29+ "*-leather": 20,
30+ "*-coatofplates": 20,
31+ "*-lamellar": 20,
32+ "*-platechest": 20,
33+ "*-scale": 20,
34+ "*-chain": 20,
35+ "*-studdedleather": 20
36+ },
2837 texturesByType: {
2938 "*-leather":{
3039 dummy:{ base: "bunnyviking:item/armament/armour/transparent"},