public void DeployStateReady(Tile tile)
    {
        PlayercontrolledCharacter CharacterToUse = charactersForStartOfDay[0];

        CharacterToUse.characterCoaster = monoPool.GetCharacterCoasterInstance();
        CharacterToUse._monoPool        = monoPool;
        CharacterToUse.TilePawnIsOn     = tile;
        CharacterToUse.NeedsRemoval     = false;
        AddPlayerControlledCharacterToList(CharacterToUse);
        CharacterToUse.characterCoaster.SetArtForFacing(EnumHolder.Facing.Down);

        charactersForStartOfDay.Remove(CharacterToUse);

        if (charactersForStartOfDay.Count == 0)
        {
            SortList();

            DeactivateAllTiles();
            StartNextCharactersTurn();
        }

        else
        {
            characterDisplay.ChangeCharacterArt(charactersForStartOfDay[0].characterArt);
        }
    }
 public void AddPlayerControlledCharacterToList(PlayercontrolledCharacter character)
 {
     character.onStartTurn      = OnPlayerControlledStart;
     character.PutCharacterBack = _characterRoster.AddCharacterBackToList;
     character.onTurnEnd        = EndTurn;
     character.characterCoaster.OnStartMoving = SetCameraToFollowCurentCharacter;
     character.onTrade = OpenTradeMenu;
     AddTimeInfluencedToList(character);
 }
Example #3
0
    public override void GetTargeter(Character character)
    {
        if (character is PlayercontrolledCharacter)
        {
            PlayercontrolledCharacter temp = (PlayercontrolledCharacter)character;

            SetName();
            SpaceContextualActions.Clear();
            SpaceContextualActions.Add(new TradeItemCommand(temp, this)); //PickUpItem(this, character, 0));
        }
    }
    public override void GetTargeter(Character character)
    {
        SpaceContextualActions.Clear();

        if (character is PlayercontrolledCharacter)
        {
            PlayercontrolledCharacter giver = (PlayercontrolledCharacter)character;
            if (character.cariedObjects.Count > 0)
            {
                //SpaceContextualActions.Add(new TradeItemCommand(giver, this)); // Make a serve food
            }
        }
    }
Example #5
0
    public override List <Command> GetAllActionsFromTile()
    {
        List <Command> ListToReturn = new List <Command>();

        foreach (Tile neighbor in TilePawnIsOn.neighbors)
        {
            if (neighbor.IsTargetableOnTile)
            {
                neighbor.TargetableOnTile.GetTargeter(this);

                for (int i = 0; i < neighbor.TargetableOnTile.GetCommands().Count; i++)
                {
                    if (!ListToReturn.Exists(x => x.GetType() == neighbor.TargetableOnTile.GetCommands()[i].GetType()))
                    {
                        if (neighbor.TargetableOnTile.GetCommands()[i].typeOfCommand == null)
                        {
                            TransferMenuCommand temp = new TransferMenuCommand(LoadCommands);
                            neighbor.TargetableOnTile.GetCommands()[i].typeOfCommand = temp;
                        }
                        ListToReturn.Add(neighbor.TargetableOnTile.GetCommands()[i]);
                    }
                }

                if (neighbor.TargetableOnTile is PlayercontrolledCharacter)
                {
                    PlayercontrolledCharacter temp = (PlayercontrolledCharacter)neighbor.TargetableOnTile;

                    if (temp.cariedObjects.Count > 0 || cariedObjects.Count > 0)
                    {
                        ListToReturn.Add(new TradeItemCommand(this, temp));
                    }
                }
            }
        }

        //if (isTargetableOnTile)
        //{
        //    ListToReturn.Add(new GiveItem(this, 0));
        //}

        ListToReturn.AddRange(CariedObjectCommands);
        return(ListToReturn);
    }
Example #6
0
    public override void GetTargeter(Character character)
    {
        SpaceContextualActions.Clear();

        if (character is PlayercontrolledCharacter)
        {
            PlayercontrolledCharacter temp     = (PlayercontrolledCharacter)character;
            List <iCaryable>          heldFood = new List <iCaryable>();
            for (int i = 0; i < character.cariedObjects.Count; i++)
            {
                // if (character.cariedObjects[i] is Supply)
                // {
                // Supply supply = (Supply)character.cariedObjects[i];
                //heldFood.Add(supply.FoodThisSupplyMakes);
                // }

                if (character.cariedObjects[i] is Food)
                {
                    Food food = (Food)character.cariedObjects[i];
                    heldFood.Add(food);
                }
            }

            heldFood.AddRange(cariedObjects);
            for (int j = 0; j < recipiesThatCanBeCreated.Count; j++)
            {
                if (recipiesThatCanBeCreated[j].CanCraftFood(heldFood))
                {
                    SpaceContextualActions.Add(new CraftFood(this, character, recipiesThatCanBeCreated[j]));
                }
            }

            if (cariedObjects.Count > 0)
            {
                SpaceContextualActions.Add(new TradeItemCommand(temp, this));
            }
        }
    }
Example #7
0
 public ShowEmployeeStats(StaffSetup staffSetup, PlayercontrolledCharacter pcc)
 {
     _staffSetup = staffSetup;
     _pcc        = pcc;
     CommandName = _pcc.Name;
 }
Example #8
0
 public void AddCharacterBackToList(PlayercontrolledCharacter characterToAdd)
 {
     employedCharacters.Add(characterToAdd);
 }