public void Unexecute() { if (performerIOcuppy.Stats.ContainsKey(STATTYPE.ACTIONPOINTS)) { StatModification statModification = new StatModification(performerIOcuppy, performerIOcuppy.Stats[STATTYPE.ACTIONPOINTS], actionPointsRequired, STATMODIFIERTYPE.BUFF); performerIOcuppy.Stats[STATTYPE.ACTIONPOINTS].AddStatModifier(statModification); performerIOcuppy.Stats[STATTYPE.ACTIONPOINTS].ApplyModifications(); } }
public void Test() { vitality.BaseMod.Value -= 10; vitality.modified += OnVitalityChanged; StatModification<int> bonus = new StatModification<int>("Bonus", 1, new AddInt(), 50); vitality.AddStatMod(bonus); vitality.RemoveStatMod(bonus); }
public void Execute() { if (performerIOcuppy.Stats.ContainsKey(STATTYPE.ACTIONPOINTS)) { StatModification statModification = new StatModification(performerIOcuppy, performerIOcuppy.Stats[STATTYPE.ACTIONPOINTS], -actionPointsRequired, STATMODIFIERTYPE.NERF); performerIOcuppy.Stats[STATTYPE.ACTIONPOINTS].AddStatModifier(statModification); performerIOcuppy.Stats[STATTYPE.ACTIONPOINTS].ApplyModifications(); executionState = COMMANDEXECUTINSTATE.FINISH; } }
public override void OnCardEffectApply(ICardTarget cardTarget) { IOcuppy ocuppier = cardTarget.GetOcuppy(); if (ocuppier == null) { return; } switch (statModifierType) { case STATMODIFIERTYPE.BUFF: // SI ES VIDA NUNCA SE PUEDE CURAR MAS QUE EL MAXIMO if (statID == 0) { // max 4 actual 3 to add 2 // 4 - 3 = 1 2 > 1 2 = 1 int maxDiference = ocuppier.Stats[statType].MaxStatValue - ocuppier.Stats[statType].ActualStatValue; if (amountToModify > maxDiference) { amountToModify = maxDiference; } } else { // S ES OTRO STAT VAMOS A AUMENTAR EL MAXIMO int diferenceToAdd = ocuppier.Stats[statType].MaxStatValue - ocuppier.Stats[statType].ActualStatValue; if (amountToModify > diferenceToAdd) { // max 2 actual 2 diference to add = 0 // PERO SI ES MOVE RANGE ATTACK RANGE NO PUEDE SER MAS QUE 3 if (statID == 1 || statID == 2) { if (ocuppier.Stats[statType].MaxStatValue > 2) { amountToModify = 1; return; } } int newAmount = ocuppier.Stats[statType].MaxStatValue + amountToModify - diferenceToAdd; ocuppier.Stats[statType].ChangeMaxStatValue(newAmount); } } break; case STATMODIFIERTYPE.NERF: int difference = ocuppier.Stats[statType].ActualStatValue - amountToModify; if (difference < 0) { // attack 1, le va a sacar 2 == -1 2 +-1 = 1 amountToModify += difference; } break; default: break; } StatModification statModification = new StatModification(ocuppier, ocuppier.Stats[statType], amountToModify, statModifierType); ocuppier.Stats[statType].AddStatModifier(statModification); ocuppier.Stats[statType].ApplyModifications(); }