コード例 #1
0
    void Update()
    {
        if (initialized)
        {
            enemyHealthBar.updateHealthBar(enemy.data.healthBarData);
            if (enemy.data.healthBarData.currHealth <= 0)
            {
                gameObject.SetActive(false);
                EnemyManagerService.getInstance().onEnemyDefeat(this);
            }

            if (attacking)
            {
                this.attackAnimationAction();
            }

            Card enemyTurn = enemy.data.enemyTurnData.currEnemyTurn;
            if (enemyTurn != null)
            {
                double weakModifier = StatusUtils.getAppliedStatusCount(StatusTypes.StatusEnum.weak, this.statusesObject.activeStatuses) > 0 ? enemy.data.weakMultiplier : 1.0;
                enemyBlockIntent.text  = "Block: " + enemyTurn.data.defend.ToString();
                enemyAttackIntent.text = "Attack: " + ((int)(weakModifier * enemyTurn.data.attack)).ToString();
                if (enemyTurn.data.attackMultiplier > 1)
                {
                    enemyAttackIntent.text += " x " + enemyTurn.data.attackMultiplier.ToString();
                }
                otherIntent.text = "";
                if (enemyTurn.data.cardToAddToPlayersDecks != null && enemyTurn.data.cardToAddToPlayersDecks.Count > 0)
                {
                    otherIntent.text = "Add " + enemyTurn.data.cardToAddToPlayersDecks.Count + " cards to players deck";
                }
            }
        }
    }
コード例 #2
0
 public CardService(
     EnemyManagerService enemyManagerService,
     PlayerService playerService,
     AudioState audioState,
     DeckService deckService,
     EnemyService enemyService)
 {
     this.enemyManagerService = enemyManagerService;
     this.playerService       = playerService;
     this.audioState          = audioState;
     this.deckService         = deckService;
     this.enemyService        = enemyService;
 }
コード例 #3
0
 public FightManagerService(
     SceneUiManager sceneUiManager,
     CardUiManager cardUiManager,
     PlayerService playerService,
     UpgradeUiManager upgradeUiManager,
     DeckService deckService,
     CampService campService,
     UpgradeService upgradeService,
     EnemyManagerService enemyManagerService,
     EventManagerService eventManagerService)
 {
     this.sceneUiManager      = sceneUiManager;
     this.cardUiManager       = cardUiManager;
     this.playerService       = playerService;
     this.deckService         = deckService;
     this.campService         = campService;
     this.upgradeService      = upgradeService;
     this.enemyManagerService = enemyManagerService;
     this.eventManagerService = eventManagerService;
 }
コード例 #4
0
    public Upgrade getUpgradeFromEnum(UpgradeEnum upgradeEnum)
    {
        Upgrade        upgrade = new Upgrade(upgradeEnum);
        UpgradeData    data    = new UpgradeData();
        UpgradeActions actions = new UpgradeActions();

        if (upgradeEnum == UpgradeEnum.apple)
        {
            int healthIncrease = 5;
            data.sprite      = Resources.Load <Sprite>(spritePath + "Apple");
            data.description = "Increase max HP by 10";
            data.name        = "Apple";

            actions.onPickupAction = () =>
            {
                playerService.playerData.healthBarData.maxHealth  += healthIncrease;
                playerService.playerData.healthBarData.currHealth += healthIncrease;
            };
            actions.onRemoveAction = () =>
            {
                playerService.playerData.healthBarData.maxHealth -= healthIncrease;
            };
        }
        else if (upgradeEnum == UpgradeEnum.banana)
        {
            int energyIncrease = 1;
            data.sprite      = Resources.Load <Sprite>(spritePath + "Bananas");
            data.description = "Inrease max energy by " + energyIncrease;
            data.name        = "Banana";

            actions.onPickupAction = () =>
            {
                playerService.playerData.maxEnergy  += energyIncrease;
                playerService.playerData.currEnergy += energyIncrease;
            };
            actions.onRemoveAction = () =>
            {
                playerService.playerData.maxEnergy  -= energyIncrease;
                playerService.playerData.currEnergy -= energyIncrease;
            };
        }
        else if (upgradeEnum == UpgradeEnum.cherries)
        {
            int firstTurnDamage = 6;

            data.sprite      = Resources.Load <Sprite>(spritePath + "Cherries");
            data.description = "At the start of combat, deal " + firstTurnDamage + " damage to all enemies";
            data.name        = "Cherries";

            actions.onCombatStartAction = () =>
            {
                EnemyManagerService.getInstance().damageAllEnemy(firstTurnDamage, 1);
            };
        }
        else if (upgradeEnum == UpgradeEnum.kiwi)
        {
            int firstTurnBlock = 10;

            data.sprite      = Resources.Load <Sprite>(spritePath + "Kiwi");
            data.description = "At the start of combat, gain " + firstTurnBlock + " block";
            data.name        = "Kiwi";

            actions.onCombatStartAction = () =>
            {
                playerService.addPlayerBlock(firstTurnBlock);
            };
        }
        else
        if (upgradeEnum == UpgradeEnum.kiwi1)
        {
            int blockThreashold = 5;

            data.sprite      = Resources.Load <Sprite>(spritePath + "Kiwi");
            data.description = "At the start of your turn, lose " + blockThreashold + " instead of all block.";
            data.name        = "Kiwi-Alt";

            actions.onPickupAction = () =>
            {
                playerService.playerData.blockToLoseEachTurn = blockThreashold;
            };
            actions.onRemoveAction = () =>
            {
                playerService.playerData.blockToLoseEachTurn = -1;
            };
        }
        else
        if (upgradeEnum == UpgradeEnum.cherries1)
        {
            int extraDrawCount = 2;

            data.sprite      = Resources.Load <Sprite>(spritePath + "Cherries");
            data.description = "At the start of combat, draw " + extraDrawCount + " extra cards";
            data.name        = "Cherries-Alt";

            actions.onCombatStartAction = () =>
            {
                for (int i = 0; i < extraDrawCount; i++)
                {
                    GameData.getInstance().deckService.drawCard();
                }
            };
        }
        else if (upgradeEnum == UpgradeEnum.banana1)
        {
            int healAmount = 6;

            data.sprite      = Resources.Load <Sprite>(spritePath + "Bananas");
            data.description = "At the end of combat, heal " + healAmount + ".";
            data.name        = "Bananas-Alt";

            actions.onCombatEndAction = () =>
            {
                GameData.getInstance().playerService.heal(healAmount);
            };
        }
        else if (upgradeEnum == UpgradeEnum.apple1)
        {
            int  firstAttackExtraDamage = 8;
            bool usedUp = false;

            data.sprite      = Resources.Load <Sprite>(spritePath + "Apple");
            data.description = "The first card played each combat deals " + firstAttackExtraDamage + " extra damage.";
            data.name        = "Apple-Alt";

            actions.onCombatStartAction = () =>
            {
                usedUp = false;
                GameData.getInstance().playerGameObject.playerData.nextAttackBonusDamage += firstAttackExtraDamage;
            };

            actions.onCardPlayedAction = (Card card) =>
            {
                if (!usedUp)
                {
                    if (card.data.attack > 0)
                    {
                        GameData.getInstance().playerGameObject.playerData.nextAttackBonusDamage -= firstAttackExtraDamage;
                        usedUp = true;
                    }
                }
            };
            actions.onCombatEndAction = () =>
            {
                if (!usedUp)
                {
                    GameData.getInstance().playerGameObject.playerData.nextAttackBonusDamage -= firstAttackExtraDamage;
                    usedUp = true;
                }
            };
        }
        else
        {
            throw new System.Exception("invalid status enum provided: " + upgradeEnum);
        }
        upgrade.data    = data;
        upgrade.actions = actions;
        return(upgrade);
    }
コード例 #5
0
 public void initialize(EnemyManagerService enemyManagerService)
 {
     this.enemyManagerService = enemyManagerService;
 }
コード例 #6
0
    void Start()
    {
        //Get references to GameObjects from scene
        takeObjectsFromScene();

        //prefabs. no dependencies.
        GameObject upgradePrefab      = Resources.Load(FilePathUtils.prefabPath + "upgradeObject") as GameObject;
        GameObject cardPrefab         = Resources.Load(FilePathUtils.prefabPath + "cardObject") as GameObject;
        GameObject campContractPrefab = Resources.Load(FilePathUtils.prefabPath + "campContractObject") as GameObject;
        GameObject healthBarPrefab    = Resources.Load(FilePathUtils.prefabPath + "healthBarObject") as GameObject;
        GameObject enemyPrefab        = Resources.Load(FilePathUtils.prefabPath + "enemyObject") as GameObject;
        GameObject eventButtonPrefab  = Resources.Load(FilePathUtils.prefabPath + "eventButtonObject") as GameObject;

        //Data classes. no dependencies
        GameData gameData = new GameData();

        GameData.setInstance(gameData);

        //Ui manager, only dependencies are GameObjects
        CardUiManager cardUiManager = new CardUiManager(
            cardPrefab,
            playerHandObject,
            cardListGrid,
            cardListScene,
            cardSelectUi
            );
        SceneUiManager sceneUiManager = new SceneUiManager(
            startScene,
            gameOverScene,
            victoryScene,
            cardListScene,
            fightSceneObject,
            campScene,
            eventScene
            );
        UpgradeUiManager upgradeUiManager = new UpgradeUiManager(
            upgradeSelect,
            upgradePrefab,
            upgradeList
            );
        CampContractUiManager campContractUiManager = new CampContractUiManager(
            campContractPrefab,
            campContracts
            );

        //Types
        StatusTypes statusTypes = new StatusTypes();
        EnemyTypes  enemyTypes  = new EnemyTypes(enemyPrefab);
        CardTypes   cardTypes   = new CardTypes();

        cardTypes.initialize(statusTypes);

        //GameObjects
        PlayerGameObject playerGameObject = playerObject.GetComponent <PlayerGameObject>();

        playerGameObject.initalize(playerObject);
        gameData.playerGameObject = playerGameObject;

        FightSceneGameObject fightSceneGameObject = fightSceneObject.GetComponent <FightSceneGameObject>();

        fightSceneGameObject.initalize(fightSceneObject);

        //Services
        UpgradeService   upgradeService   = new UpgradeService();
        EnemyTurnService enemyTurnService = new EnemyTurnService();
        StatusService    statusService    = new StatusService(statusTypes);

        EnemyService         enemyService         = new EnemyService(enemyTurnService, statusService);
        CardGeneratorService cardGeneratorService = new CardGeneratorService(cardTypes);

        PlayerService       playerService       = new PlayerService(sceneUiManager, statusService, playerGameObject);
        DeckService         deckService         = new DeckService(cardUiManager, playerService);
        CampContractService campContractService = new CampContractService(campContractUiManager);
        EnemyManagerService enemyManagerService = new EnemyManagerService(
            enemyPrefab,
            enemyContainer,
            playerService,
            enemyService,
            enemyTurnService,
            statusService,
            deckService,
            enemyTypes,
            cardUiManager,
            cardGeneratorService,
            sceneUiManager,
            upgradeUiManager,
            upgradeService
            );
        CardService        cardService        = new CardService(enemyManagerService, playerService, new AudioState(), deckService, enemyService);
        CampService        campService        = new CampService(campScene, campSelectionScene, campContractService, cardTypes);
        CardActionsService cardActionsService = new CardActionsService(deckService, playerService, cardService);

        EnemyManagerService.setInstance(enemyManagerService);

        UpgradeTypes upgradeTypes = new UpgradeTypes(playerService);

        EventManagerService eventManagerService = new EventManagerService(
            eventBoard,
            eventBoardButtons,
            eventButtonPrefab,
            campTitleText,
            campText
            );
        FightManagerService fightManagerService = new FightManagerService(
            sceneUiManager,
            cardUiManager,
            playerService,
            upgradeUiManager,
            deckService,
            campService,
            upgradeService,
            enemyManagerService,
            eventManagerService
            );

        eventManagerService.setFightService(fightManagerService);
        cardUiManager.initialize(cardActionsService);
        upgradeUiManager.initialize(upgradeService);
        deckService.initialize(enemyManagerService);

        //Initialize game data class
        gameData.deckService    = deckService;
        gameData.playerService  = playerService;
        gameData.upgradeService = upgradeService;
        gameData.enemyTypes     = enemyTypes;


        //init scene buttons + add click events
        startNewRunButton.onClick.AddListener(() => fightManagerService.startNewRun(upgradeTypes, cardTypes));
        runItBackButton.onClick.AddListener(() => fightManagerService.startNewRun(upgradeTypes, cardTypes));
        nextFightButton.onClick.AddListener(fightManagerService.startFight);
        closeCardListButton.onClick.AddListener(cardUiManager.hideCardPile);
        closeCampListButton.onClick.AddListener(() => campService.hideCampFightList());
        leaveCampButton.onClick.AddListener(() => fightManagerService.confirmCampEvents());

        DeckData deckData = gameData.deckData;

        addEventTrigger(showDeckObject).callback.AddListener((data) => cardUiManager.showCardPile(deckData.deckCards));
        addEventTrigger(showDiscardObject).callback.AddListener((data) => cardUiManager.showCardPile(deckData.discardCards));
        addEventTrigger(showTrashObject).callback.AddListener((data) => cardUiManager.showCardPile(deckData.trash));
        addEventTrigger(endTurnObject).callback.AddListener((data) => fightManagerService.endTurn());
        addEventTrigger(extraDrawObject).callback.AddListener((data) => deckService.extraDraw());

        addEventTrigger(wellGameObject).callback.AddListener((data) => campService.showCampFightList());
        addEventTrigger(shopGameObject).callback.AddListener((data) => campService.showCampFightList());

        //hide well/shop buttons
        wellGameObject.SetActive(false);
        shopGameObject.SetActive(false);
    }
コード例 #7
0
 public static void setInstance(EnemyManagerService instance)
 {
     enemyManagerService = instance;
 }