public PartyAttack(StateMachine stateMachine, float timeBeforeNextAttack, WM_party party) { this.stateMachine = stateMachine; this.party = party; this.timeBeforeNextAttack = timeBeforeNextAttack; this.timestamp = Time.time; }
public void SendAttackRequest(WM_party enemyParty) { Debug.Log("Sending request to attack by " + gameObject.name); WM_CombatManager CM = WM_CombatManager.instance; CM.BattleRequest(this, enemyParty); }
bool AlreadyRequested(WM_party unit0, WM_party unit1) { for (int i = battlePendingRequest.Count - 1; i >= 0; i--) { if (battlePendingRequest[i].party0 == unit1 || battlePendingRequest[i].party1 == unit1) { return(true); } if (battlePendingRequest[i].party0 == unit0 || battlePendingRequest[i].party1 == unit0) { return(true); } } for (int i = battleList.Count - 1; i >= 0; i--) { if (battleList[i].party0 == unit1 || battleList[i].party1 == unit1) { return(true); } if (battleList[i].party0 == unit0 || battleList[i].party1 == unit0) { return(true); } } return(false); }
public Vector3 PartyPositionOnNode(WM_party p) { Vector3 pos; float value = partyList.FindIndex(item => item == p) * Mathf.PI / 6; pos = new Vector3(transform.position.x + radius * Mathf.Cos(value), transform.position.y, transform.position.z + radius * Mathf.Sin(value)); return(pos); }
public void Execute() { nodeToConquer = SelectNode(); if (nodeToConquer == null) { return; } party = SelectParty(); if (party == null) { return; } party.Conquer(nodeToConquer); }
public void BattleRequest(WM_party unit0, WM_party unit1) { // batle btw 2 npc, returns if the request was accepted or dropped // if one of the nodes has already left the node, drop request if (unit0.currentNode == null || unit1.currentNode == null) { return; } // add them to the battle list because 1st time for both if (!AlreadyRequested(unit0, unit1)) { battlePendingRequest.Add(new battle(unit0, unit1)); } }
WM_party SelectParty() { //select the closest party available WM_party tmp = null; float dist = Mathf.Infinity; for (int i = faction.roamingUnits.Count - 1; i >= 0; i--) { float tmpdist = Vector3.Distance(faction.roamingUnits[i].transform.position, nodeToConquer.transform.position); if (faction.roamingUnits[i].available && faction.roamingUnits[i].currentNode != null && tmpdist < dist) { tmp = faction.roamingUnits[i]; dist = tmpdist; } } return(tmp); }
public void Execute() { if (!party.available) { timestamp = Time.time; return; } if (Time.time - timestamp >= guardTimer) { party.nodeGuarded = true; stateMachine.ChangeIdleState(idle); return; } partySpotted = party.Guard(); if (partySpotted != null) { stateMachine.ChangeAndExecute(attack); } }
void DeclineDuplicateRequest(WM_party unit0, WM_party unit1) { bool remove = false; for (int i = battlePendingRequest.Count - 1; i >= 0; i--) { if (battlePendingRequest[i].party0 == unit1 || battlePendingRequest[i].party1 == unit1) { remove = true; } if (battlePendingRequest[i].party0 == unit0 || battlePendingRequest[i].party1 == unit0) { remove = true; } if (remove) { battlePendingRequest.RemoveAt(i); } } }
public void SpawnNewUnits(int numberOfUnits, List <WM_party> duty) { GameObject party = Instantiate(partyPrefab, transform); WM_party tmpParty = party.GetComponent <WM_party>(); tmpParty.currentNode = Base; tmpParty.faction = this; party.name = gameObject.name + " party " + partyCount; partyCount++; for (int i = 0; i < numberOfUnits; i++) { GameObject obj = Instantiate(unitPrefab, party.transform); WM_Unit tmpUnit = obj.transform.GetChild(0).GetComponent <WM_Unit>(); tmpUnit.transform.position = Base.transform.position; tmpUnit.currentNode = Base; obj.name = party.name + " " + party.GetComponent <WM_party>().party.Count; tmpUnit.faction = this; tmpUnit.currentNode = Base; tmpUnit.party = tmpParty; tmpParty.party.Add(tmpUnit); } duty.Add(tmpParty); }
public PartyConquer(StateMachine stateMachine, float conquestTimer, WM_party party) { this.stateMachine = stateMachine; this.conquestTimer = conquestTimer; this.party = party; }
public PartyIdle(StateMachine stateMachine, WM_party party) { this.stateMachine = stateMachine; this.party = party; }
public void IsFightingPlayer(WM_party ennemyParty) { Debug.Log(ennemyParty); fightingThePlayer = ennemyParty; }
public void Enter() { partyToAttack = party.Guard(); party.available = false; }
public battle(WM_party _u0, WM_party _u1) { party0 = _u0; party1 = _u1; processed = false; }
public PartyGuard(StateMachine stateMachine, WM_party party, float guardTimer) { this.stateMachine = stateMachine; this.party = party; this.guardTimer = guardTimer; }
public battle(WM_party _u0, WM_party _u1, bool proceeding) { party0 = _u0; party1 = _u1; processed = proceeding; }