private int CountFireDamage(out bool EnoughStamina) { /* * Výpočet dmg * Odečtení náboje * odečtení actionpointů * * vrací dmg + out parametr dává najevo, jestli je dost staminy */ PlayerCombat.ActionPointLoss = this.Weapon.Cost; // pro vypis PlayerCombat.BaseActPoint = this.AttackerCharacter.Stamina; // pro vypis if (this.AttackerCharacter.Stamina >= this.Weapon.Cost) { EnoughStamina = true; int Accuracy = this.Weapon.Accuracy; PlayerCombat.Accuracy = Accuracy; // pro vypis int RawDamage = this.Weapon.Damage; this.AttackerInventory.Actual--; InventoryTable.Update(AttackerInventory); this.AttackerCharacter.Stamina -= this.Weapon.Cost; PlayerCombat.CurrActionPoint = this.AttackerCharacter.Stamina; // pro vypis System.Random r = new System.Random(); int RandAcc = r.Next(0, 100); if (RandAcc > Accuracy) { return(0); } else { System.Random DamageOnRange = new System.Random(); int Damage = DamageOnRange.Next(System.Convert.ToInt32(RawDamage * 0.85), RawDamage); PlayerCombat.Dmg = Damage; // pro vypis return(Damage); } } EnoughStamina = false; return(0); }
public void CmdRefill(int id) { Player player = PlayerTable.Select(id); System.Random rnd = new System.Random(); int rnum = rnd.Next(0, 100); if (rnum >= 0 && rnum <= 33) //healthpack { Character ch = CharacterTable.Select(player.CharacterID); player.Health = ch.BHealth + Constants.player_basehealth; PlayerTable.Update(player); this.message = "Health"; } else if (rnum > 33 && rnum <= 66)//ammo { Inventory i = InventoryTable.Select(player.InventoryID); i.Actual = WeaponTable.Select(i.Weapon_ID).Ammo; InventoryTable.Update(i); this.message = "Ammo"; } else //Weapon { Collection <Weapon> weapons = WeaponTable.Select(); Collection <Inventory> inventories = InventoryTable.Select(); Collection <Weapon> notowned = new Collection <Weapon>(); foreach (Weapon w in weapons) { bool add = true; foreach (Inventory inv in inventories) { if (w.ID == inv.Weapon_ID && inv.Player_ID == player.ID) //pokud hráč již vlastní zbraň { add = false; break; } } if (add) { notowned.Add(w); } } if (notowned.Count == 0) //pokud uz vlastnim vše { Character ch = CharacterTable.Select(player.CharacterID); player.Armor += 100; PlayerTable.Update(player); this.message = "Armor"; } else { int WeaponID = rnd.Next(0, notowned.Count - 1); Inventory i = new Inventory(); i.Player_ID = player.ID; i.Weapon_ID = notowned[WeaponID].ID; i.Actual = notowned[WeaponID].Ammo; i.Slot = InventoryTable.Select_Count() + 1; InventoryTable.Insert(i); this.message = notowned[WeaponID].Name; } } PlayerRefill.ObtainedItem = this.message; }