//Move a unit from the field to the bench, //adding it to the appropriate data structure //and updating the synergies //ENSURE THAT YOU UPDATE THE GRID POSITION THIS CHARACTER IS CURRENTLY ON protected virtual void FieldToBench(int u_Index) { Character unit = field_Units[u_Index]; field_Units.Remove(unit); bench_Units.Add(unit); foreach (Character c in field_Units) { if (unit.name == c.name && unit != c) { return; } } foreach (ATTRIBUTES o in unit.attributes) { if (p_Attributes.ContainsKey(o)) { p_Attributes[o]--; } CheckAttributes(o); if (p_Attributes[o] == 0) { p_Attributes.Remove(o); } } SetText(); }
protected void CmdRemoveCharacter(Character character) { if (character.grid_Position.y < 4) { grid[(int)character.grid_Position.x, (int)character.grid_Position.y].RemoveCharacter(); FieldToBench(field_Units.IndexOf(character)); } else { bench[(int)character.grid_Position.x].RemoveCharacter(); } bench_Units.Remove(character); characterLevels[character.ID, character.level - 1]--; Destroy(character.gameObject); NetworkServer.Destroy(character.gameObject); }