public Category(GeneralGroup general, TeamFilterGroup teamFilter, ProductGroup product) { General = general; TeamFilter = teamFilter; Product = product; }
//attacks another group public void Attack(GeneralGroup target, AttackType atk) { hasAttacked = true; //roll 2d6 for determining outcome int diceRoll = Random.Range(1, 6) + Random.Range(1, 6); //the number to beat with the roll int targetNumber = 0; //set base target numbers based on attack type switch (atk) { case AttackType.Control: targetNumber = power - target.GetResistance(); //check alignment oppositon and add power break; case AttackType.Destroy: targetNumber = power - target.power; //check alignment oppositon and add power break; case AttackType.Neutralize: targetNumber = power - target.GetResistance() + 6; break; default: targetNumber = power - target.GetResistance(); break; } //decrease target number based on proximity to Central Group if (target.distanceFromCentral == 1) { targetNumber -= 10; } else if (target.distanceFromCentral == 2) { targetNumber -= 5; } else if (target.distanceFromCentral == 3) { targetNumber -= 2; } //prompt source player for Assassination //prompt other players for Murphy's Law if (diceRoll > 10) { Debug.Log("Attack Failed"); return; } //prompt source and target players to use transferable power //prompt source and target players to spend money //prompt other players for Interference //prompt source player for Privilege //determine if attack fails, exit if true if (diceRoll > targetNumber) { Debug.Log("Attack Failed"); return; } switch (atk) { case AttackType.Control: //prompt selection of arrow to control target from if (target.controller == null) { BoardManager.uncontrolledDeck.RemoveCard(target); } target.treasury /= 2; target.controller = this.controller; //prompt free transfer break; case AttackType.Destroy: targetNumber = power - target.power; target.ResetControl(); BoardManager.destroyedDeck.AddCard(target); groupsDestroyed++; //move target to destroyed pile break; case AttackType.Neutralize: target.ResetControl(); break; default: targetNumber = power - target.GetResistance(); break; } }