public List <string> Get() { if ((Price > 0) && (Character.Protagonist.Tanga >= Price)) { Character.Protagonist.Tanga -= Price; Game.Option.Trigger(RemoveTrigger, remove: true); if (Benefit != null) { Benefit.Do(); } } else if (StatToMax && (Character.Protagonist.MaxBonus > 0)) { Character.Protagonist.GetType().GetProperty(Stat).SetValue(Character.Protagonist, 12); Character.Protagonist.MaxBonus = 0; } else if (Character.Protagonist.StatBonuses >= 0) { int currentStat = (int)Character.Protagonist.GetType().GetProperty(Stat).GetValue(Character.Protagonist, null); currentStat += (StatStep > 1 ? StatStep : 1); Character.Protagonist.GetType().GetProperty(Stat).SetValue(Character.Protagonist, currentStat); Character.Protagonist.StatBonuses -= 1; } return(new List <string> { "RELOAD" }); }
public List <string> Get() { if ((Price > 0) && (Character.Protagonist.Tanga >= Price)) { Character.Protagonist.Tanga -= Price; Used = true; if (Benefit != null) { Benefit.Do(); } } else if (Character.Protagonist.StatBonuses >= 0) { int currentStat = (int)Character.Protagonist.GetType().GetProperty(Stat).GetValue(Character.Protagonist, null); currentStat += 1; Character.Protagonist.GetType().GetProperty(Stat).SetValue(Character.Protagonist, currentStat); Character.Protagonist.StatBonuses -= 1; } return(new List <string> { "RELOAD" }); }
public List <string> Get() { if (!String.IsNullOrEmpty(RemoveTrigger)) { Game.Option.Trigger(RemoveTrigger, remove: true); } if ((Price > 0) && (Character.Protagonist.Cents >= Price)) { Character.Protagonist.Cents -= Price; if (!Multiple) { Used = true; } if (Benefit != null) { Benefit.Do(); } } return(new List <string> { "RELOAD" }); }
public List <string> Get() { if (ThisIsSpell && (Character.Protagonist.SpellSlots >= 1)) { Character.Protagonist.Spells.Add(Text); Character.Protagonist.SpellSlots -= 1; } else if ((Price > 0) && (Character.Protagonist.Gold >= Price)) { Character.Protagonist.Gold -= Price; if (!Multiple) { Used = true; } if (Benefit != null) { Benefit.Do(); } } return(new List <string> { "RELOAD" }); }
public List <string> GetSomething() { if (Benefit != null) { Benefit.Do(); } Used = true; return(new List <string> { "RELOAD" }); }
public List <string> Get() { if (ThisIsSpell && (Character.Protagonist.Magicpoints >= 1)) { Character.Protagonist.Spells.Add(Text); Character.Protagonist.SpellsReplica.Add(Text); Character.Protagonist.Magicpoints -= 1; } else if ((Specialization != null) && (Character.Protagonist.Specialization == Character.SpecializationType.Nope)) { Character.Protagonist.Specialization = Specialization ?? Character.SpecializationType.Nope; if (Specialization == Character.SpecializationType.Warrior) { Character.Protagonist.Strength += 1; } else if (Specialization == Character.SpecializationType.Thrower) { Character.Protagonist.Magicpoints += 1; } else { Character.Protagonist.Magicpoints += 2; Character.Protagonist.Transformation += 2; } } else if ((Price > 0) && (Character.Protagonist.Gold >= Price)) { Character.Protagonist.Gold -= Price; Used = true; } if (!String.IsNullOrEmpty(OnlyOne)) { Game.Option.Trigger(OnlyOne); } if (Benefit != null) { Benefit.Do(); } return(new List <string> { "RELOAD" }); }
public List <string> Get() { if ((Price > 0) && (Character.Protagonist.Creds >= Price)) { Character.Protagonist.Creds -= Price; if (Benefit != null) { Benefit.Do(); } } return(new List <string> { "RELOAD" }); }
public List <string> Reaction() { List <string> reaction = new List <string>(); bool goodReaction = GoodReaction(ref reaction); reaction.Add(goodReaction ? "BIG|GOOD|СРЕАГИРОВАЛИ :)" : "BIG|BAD|НЕ СРЕАГИРОВАЛИ :("); if (goodReaction && (Benefit != null)) { Benefit.Do(); } if (!goodReaction && (Damage != null)) { Damage.Do(); } return(reaction); }
public List <string> Fight() { List <string> fight = new List <string>(); Dictionary <int, string> rangeType = Constants.GetRangeTypes(); List <int> myCombination = new List <int>(); List <string> myCombinationLine = new List <string>(); int combinationLength = 6 + Character.Protagonist.Fury; for (int i = 0; i < combinationLength; i++) { int dice = Game.Dice.Roll(); myCombination.Add(dice); myCombinationLine.Add(Game.Dice.Symbol(dice)); } fight.Add(String.Format("Ваша комбинация: {0}", String.Join(String.Empty, myCombinationLine.ToArray()))); List <int> enemyCombination = new List <int>(); List <string> enemyCombinationLine = new List <string>(); foreach (string dice in EnemyCombination.Split('-')) { enemyCombinationLine.Add(Game.Dice.Symbol(int.Parse(dice))); } fight.Add(String.Format("Его комбинация: {0}", String.Join(String.Empty, enemyCombinationLine.ToArray()))); if (Upgrade(ref myCombination, ref myCombinationLine, ref fight)) { fight.Add(String.Format("Теперь ваша комбинация: {0}", String.Join(String.Empty, myCombinationLine.ToArray()))); } bool birds = Birds; while (true) { if (myCombination.Contains(1)) { fight.Add(String.Empty); fight.Add("BOLD|МАНЕВРИРОВАНИЕ"); int maneuvers = CountInCombination(myCombination, 1); bool failManeuvers = true; foreach (int dice in new int[] { 6, 5, 4 }) { for (int i = 0; i < enemyCombination.Count; i++) { if ((enemyCombination[i] == dice) && (maneuvers > 0)) { fight.Add(String.Format("Убираем у противника {0}-ку за ваше маневрирование", dice)); enemyCombination[i] = 0; maneuvers -= 1; failManeuvers = false; } } } if (failManeuvers) { fight.Add("Маневрирование ничего не дало противникам"); } } foreach (int range in new int[] { 6, 5, 4 }) { fight.Add(String.Empty); fight.Add(String.Format("BOLD|{0}", rangeType[range])); int roundResult = 0; if (!myCombination.Contains(range) && !enemyCombination.Contains(range)) { fight.Add("Противникам нечего друг другу противопоставить"); } else if (myCombination.Contains(range) && !enemyCombination.Contains(range)) { roundResult = 1; if (range == 4) { fight.Add("BIG|GOOD|Вы уничтожили противника тараном, оружием героев :)"); if (Benefit != null) { Benefit.Do(); } return(fight); } else { fight.Add("GOOD|Вы накрыли противника огнём"); } } else if (!myCombination.Contains(range) && enemyCombination.Contains(range)) { roundResult = -1; if (range == 4) { fight.Add("BIG|BAD|Противник уничтожил вас тараном :("); Character.Protagonist.Hitpoints = 0; return(fight); } else { fight.Add("BAD|Противник накрыл вас огнём"); } } else { fight.Add(range == 4 ? "Взаимные манёвры:" : "Перестрелка:"); while (roundResult == 0) { string bonuses = String.Empty; int myDice = Game.Dice.Roll(); int myBonus = CountInCombination(myCombination, range); int myAttack = myDice + myBonus; if (myBonus > 0) { bonuses = String.Format(", +{0} за {1}-ки, итого {2}", myBonus, range, myAttack); } fight.Add(String.Format("Ваша атака: {0}{1}", Game.Dice.Symbol(myDice), bonuses)); bonuses = String.Empty; int enemyDice = Game.Dice.Roll(); int enemyBonus = CountInCombination(enemyCombination, range); int enemyAttack = enemyDice + enemyBonus; if (enemyBonus > 0) { bonuses = String.Format(", +{0} за {1}-ки, итого {2}", enemyBonus, range, enemyAttack); } fight.Add(String.Format("Атака противника: {0}{1}", Game.Dice.Symbol(enemyDice), bonuses)); if ((myAttack > enemyAttack) && (range == 4)) { fight.Add("BIG|GOOD|Вы уничтожили противника тараном, оружием героев :)"); if (Benefit != null) { Benefit.Do(); } return(fight); } else if ((myAttack < enemyAttack) && (range == 4)) { fight.Add("BIG|BAD|Противник уничтожил вас тараном :("); Character.Protagonist.Hitpoints = 0; return(fight); } else if (myAttack > enemyAttack) { roundResult = 1; fight.Add("GOOD|Вы подавили противника огнём"); } else if (myAttack < enemyAttack) { roundResult = -1; fight.Add("BAD|Противник подавил вас огнём"); } else { fight.Add("Перестрелка продолжается:"); } } } if (roundResult == 1) { string bonuses = String.Empty, penalties = String.Empty; int myDice = Game.Dice.Roll(); int myBonus = CountInCombination(myCombination, 3); int myPenalty = CountInCombination(enemyCombination, 2); int enemyEvasion = myDice + myBonus - myPenalty; if (myBonus > 0) { bonuses = String.Format(", +{0} за ваши 3-ки", myBonus); } if (myPenalty > 0) { penalties = String.Format(", -{0} за его 2-ки", myPenalty); } fight.Add(String.Format("Противник пытется уклониться: {0}{1}{2}, итого {3} - это {4} порогового значения '2'", Game.Dice.Symbol(myDice), bonuses, penalties, enemyEvasion, Game.Other.Сomparison(enemyEvasion, 2))); if (enemyEvasion > 2) { if (birds) { fight.Add("GOOD|Вы уничтожили одну из птиц"); birds = false; foreach (int dice in new int[] { 5, 4, 3 }) { enemyCombination.RemoveAt(dice); } } else { fight.Add("BIG|GOOD|Вы уничтожили противника :)"); if (Benefit != null) { Benefit.Do(); } return(fight); } } else { fight.Add("Противник смог уклониться"); } } else if (roundResult == -1) { string bonuses = String.Empty, penalties = String.Empty; int enemyDice = Game.Dice.Roll(); int enemyBonus = CountInCombination(enemyCombination, 3); int enemyPenalty = CountInCombination(myCombination, 2); int myEvasion = enemyDice + enemyBonus - enemyPenalty; if (enemyBonus > 0) { bonuses = String.Format(", +{0} за его 3-ки", enemyBonus); } if (enemyPenalty > 0) { penalties = String.Format(", -{0} за ваши 2-ки", enemyPenalty); } fight.Add(String.Format("Вы пытется уклониться: {0}{1}{2}, итого {3} - это {4} порогового значения '2'", Game.Dice.Symbol(enemyDice), bonuses, penalties, myEvasion, Game.Other.Сomparison(myEvasion, 2))); if (myEvasion > 2) { fight.Add("BIG|BAD|Противник уничтожил вас :("); Character.Protagonist.Hitpoints = 0; return(fight); } else { fight.Add("Вы смогли уклониться"); } } } fight.Add("BOLD|Бой окончился ничьёй"); return(fight); } }