public Character Clone() { Character clone = new Character(Name, X, Y); clone.Hidden = Hidden; foreach (CharacterGoal goal in Goals) { clone.Goals.Add(goal); } clone.SetAction(nextAction); foreach (KeyValuePair <string, feelingsAboutChar> kvp in Relationships) { clone.AddRelationship(kvp.Key, kvp.Value); } foreach (Item item in Items) { clone.Items.Add(item.Clone()); } foreach (string status in this.Statuses) { clone.AddStatus(status); } return(clone); }
public GameState InitializeGameState2() { GameState initState = new GameState(); //Make Characters Character playerCharacter = new Character(PLAYER_NAME, MAX_WIDTH / 2f, MAX_HEIGHT / 2f); initState.Player = playerCharacter; Random r = new Random(); Character prisonerCharacter = new Character(GetRandomPrisonerName(), playerCharacter.X - r.Next(20) + r.Next(20), playerCharacter.Y); prisonerCharacter.Hidden = true; prisonerCharacter.AddStatus("Alive"); initState.AddCharacter(prisonerCharacter); Location loc = GetNewCharacterLocation(initState); Character guardCharacter = new Character(GetRandomPrisonerName(), loc.X, loc.Y); guardCharacter.Hidden = true; guardCharacter.AddStatus("Alive"); initState.AddCharacter(guardCharacter); guardCharacter.Goals.Add(new CharacterGoal(ConditionLibrary.IsInstigatorAlive, guardCharacter, null, null)); guardCharacter.Goals.Add(new CharacterGoal(ConditionLibrary.IsReceiverDead, guardCharacter, prisonerCharacter, null)); guardCharacter.Goals.Add(new CharacterGoal(ConditionLibrary.StateHasLethalItem, null, null, null)); prisonerCharacter.Goals.Add(new CharacterGoal(ConditionLibrary.IsInstigatorAlive, prisonerCharacter, null, null)); prisonerCharacter.Goals.Add(new CharacterGoal(ConditionLibrary.IsReceiverDead, prisonerCharacter, guardCharacter, null)); prisonerCharacter.Goals.Add(new CharacterGoal(ConditionLibrary.StateHasLethalItem, null, null, null)); return(initState); }
public Character Clone(){ Character clone = new Character (Name, X, Y); clone.Hidden = Hidden; foreach (CharacterGoal goal in Goals) { clone.Goals.Add(goal); } clone.SetAction (nextAction); foreach (KeyValuePair<string, feelingsAboutChar> kvp in Relationships) { clone.AddRelationship(kvp.Key,kvp.Value); } foreach (Item item in Items) { clone.Items.Add(item.Clone()); } foreach (string status in this.Statuses) { clone.AddStatus(status); } return clone; }
public GameState InitializeGameState5() { GameState initState = new GameState(); //Make Characters Character playerCharacter = new Character(PLAYER_NAME, MAX_WIDTH / 2f, MAX_HEIGHT / 2f); initState.Player = playerCharacter; Random r = new Random (); Character prisonerCharacter = new Character(GetRandomPrisonerName(), playerCharacter.X -r.Next(20)+r.Next(20), playerCharacter.Y); prisonerCharacter.Hidden = true; prisonerCharacter.AddStatus("Alive"); initState.AddCharacter(prisonerCharacter); Location loc = GetNewCharacterLocation(initState); Character guardCharacter = new Character(GetRandomGuardName(), loc.X, loc.Y); guardCharacter.Hidden = true; guardCharacter.AddStatus("Alive"); initState.AddCharacter(guardCharacter); Location loc2 = GetNewCharacterLocation(initState); Character prisonerCharacter2 = new Character(GetRandomPrisonerName(), loc2.X, loc2.Y); prisonerCharacter2.Hidden = true; prisonerCharacter2.AddStatus("Alive"); initState.AddCharacter(prisonerCharacter2); guardCharacter.Goals.Add(new CharacterGoal(ConditionLibrary.IsInstigatorAlive, guardCharacter, null, null)); guardCharacter.Goals.Add (new CharacterGoal (ConditionLibrary.IsReceiverDead, guardCharacter, prisonerCharacter, null)); guardCharacter.Goals.Add (new CharacterGoal (ConditionLibrary.StateHasLethalItem, null, null, null)); prisonerCharacter2.Goals.Add(new CharacterGoal(ConditionLibrary.IsInstigatorAlive, prisonerCharacter2, null, null)); prisonerCharacter2.Goals.Add(new CharacterGoal(ConditionLibrary.IsInstigatorMobile, prisonerCharacter2, null, null)); prisonerCharacter2.Goals.Add(new CharacterGoal(ConditionLibrary.DoesStateHaveLiberatingItem, null, null, null)); prisonerCharacter2.Goals.Add(new CharacterGoal(ConditionLibrary.DoesStateNotHaveLethalItem, null, null, null)); prisonerCharacter.Goals.Add(new CharacterGoal(ConditionLibrary.IsInstigatorAlive, prisonerCharacter, null, null)); prisonerCharacter.Goals.Add(new CharacterGoal(ConditionLibrary.IsInstigatorMobile, prisonerCharacter, null, null)); prisonerCharacter.Goals.Add(new CharacterGoal(ConditionLibrary.DoesStateHaveLiberatingItem, null, null, null)); prisonerCharacter.Goals.Add(new CharacterGoal(ConditionLibrary.DoesStateNotHaveLethalItem, null, null, null)); return initState; }