Exemple #1
0
        /// <summary>
        /// Konstruktor.
        /// </summary>
        /// <param name="enemyType">Typ wroga.</param>
        /// <param name="assetName">Nazwa zasobu grafiki wroga.</param>
        /// <param name="life">Liczba życia wroga.</param>
        /// <param name="strenght">Siła ataku.</param>
        /// <param name="speed">Prędkość będąca dzielnikiem liczby 42.</param>
        /// <param name="direction">Kierunek początkowego porusznia się.</param>
        /// <param name="isFreeze">Czy jest zatrzymany w miejscu.</param>
        /// <param name="evolve">Delegatura do funkcji ewolucji.</param>
        /// <param name="testMove">Delegatura do funkcji testowania ruchu.</param>
        /// <param name="webShoot">Delegatura do funkcji strzelania.</param>
        /// <param name="observe">Delegatura do funkcji obserwowania w poszukiwaniu robaczka.</param>
        /// <param name="attack">Delegatura do funckji ataku na robaczka.</param>
        public Enemy(EnemyType enemyType, string assetName, int?life, int strenght, int speed, Direction direction, bool isFreeze, EvolveDelegate evolve, TestMoveDelegate testMove,
                     WebShootDelegate webShoot, ObserveDelegate observe, AttackDelegate attack)
        {
            _enemyType = enemyType;
            _life      = life;
            _strenght  = strenght;

            _speed           = _startSpeed = speed;
            _slowEffectTime  = 0;
            _elapsedSlowTime = 0;

            _direction = direction;

            _isFreeze          = isFreeze;
            _freezeEffectTime  = 0;
            _elapsedFreezeTime = 0;

            _enemyGraphic = new AnimatedGraphic();

            _evolve   = evolve;
            _testMove = testMove;
            _webShoot = webShoot;
            _observe  = observe;
            _attack   = attack;

            LoadContent(Window.Context.Content, assetName);

            _isKilled = false;
            _sawWorm  = false;
        }
 private void Awake()
 {
     onAttack      = null;
     onFail        = null;
     onGameplayEnd = null;
     sfxSource     = GetComponent <AudioSource>();
 }
Exemple #3
0
 public Skill(AttackDelegate d, int level, int en, string name, string desc)
 {
     skill     = d;
     reqLevel  = level;
     reqEn     = en;
     this.name = name;
     this.desc = desc;
 }
Exemple #4
0
 public Skill(AttackDelegate d, int level, int en, string name, string desc, bool targ)
 {
     skill        = d;
     reqLevel     = level;
     reqEn        = en;
     this.name    = name;
     this.desc    = desc;
     targetsEnemy = targ;
 }
    //
    public void SubscribeMethod(string AchieveType, int Id)
    {
        switch (AchieveType)
        {
        case "Jump":

            if (playData.achievements[Id].State == false)
            {
                JumpEvent += new JumpDelegate(JumpMethod);
                JumpBool   = true;
                JumpId     = Id;
                JumpTarget = playData.achievements[Id].Target;
            }
            break;

        case "Level":
            if (playData.achievements[Id].State == false)
            {
                LevelEvent += new LevelDelegate(LevelMethod);
                LevelBool   = true;
                LevelId     = Id;
                playData.achievements[LevelId].Done = playData.level;
                LevelTarget = playData.achievements[Id].Target;
            }
            break;

        case "Attack":
            if (playData.achievements[Id].State == false)
            {
                AttackEvent += new AttackDelegate(AttackMethod);
                AttackBool   = true;
                AttackId     = Id;
                AttackTarget = playData.achievements[Id].Target;
            }
            break;

        case "Die":
            if (playData.achievements[Id].State == false)
            {
                DieEvent += new DieDelegate(DieMethod);
                DieBool   = true;
                DieId     = Id;
                DieTarget = playData.achievements[Id].Target;
            }
            break;

        case "Kill":
            if (playData.achievements[Id].State == false)
            {
                KillEvent += new KillDelegate(KillMethod);
                KillBool   = true;
                KillId     = Id;
                KillTarget = playData.achievements[Id].Target;
            }
            break;
        }
    }
        void Start()
        {
            //Save typing
            enemyManager = EnemyManager.instance;

            onAttack += MeleeAttack;
            onAttack += MeleeAttack;
            onAttack += ShootAttack; //Will call MeleeAttack twice and ShootAttack once.
            onAttack();
        }
Exemple #7
0
        /// <summary>
        /// Konstruktor kopiujący
        /// </summary>
        /// <param name="enemy">Obiekt wzorcowy</param>
        public Enemy(Enemy enemy)
        {
            _enemyGraphic = enemy._enemyGraphic.Clone();

            _enemyType  = enemy._enemyType;
            _life       = enemy._life;
            _strenght   = enemy._strenght;
            _speed      = enemy._speed;
            _startSpeed = enemy._startSpeed;
            _direction  = enemy._direction;

            _isFreeze = enemy._isFreeze;
            _isKilled = false;

            _evolve   = enemy._evolve;
            _testMove = enemy._testMove;
            _webShoot = enemy._webShoot;
            _observe  = enemy._observe;
            _attack   = enemy._attack;
            _sawWorm  = enemy._sawWorm;
        }
Exemple #8
0
        public static IEnumerable <Wait> Spark(Creature user, Random random, AttackDelegate attack)
        {
            var lightning = SpriteLoader.Instance.AddSprite("content/lightning");
            IEnumerable <Tile> targetTiles = GetFrontierTiles(user);
            HashSet <Creature> targets     = new HashSet <Creature>();

            yield return(user.WaitSome(10));

            foreach (Tile tile in targetTiles)
            {
                targets.AddRange(tile.Creatures.Where(creature => creature != user));
            }
            List <Wait> waitForDamage = new List <Wait>();

            foreach (var target in targets)
            {
                new LightningSpark(user.World, lightning, user.VisualPosition() + user.Mask.GetRandomPixel(random), target.VisualPosition() + target.Mask.GetRandomPixel(random), 5);
                var wait = user.Attack(target, SkillUtil.SafeNormalize(target.VisualTarget - user.VisualTarget), attack);
                waitForDamage.Add(wait);
            }
            yield return(new WaitAll(waitForDamage));
        }
    private void Start()
    {
        if (GameObject.FindWithTag("Enemy"))
        {
            GameObject enemy = GameObject.FindWithTag("Enemy");
            Debug.Log(enemy.name);
            //find out which enemy it is...set methods according to spefic model
            if (enemy.name == "Skeleton")
            {
                attackMethod = SkeletonAttackButtonAction; //test in Button Handler by calling the variable
                strikeMethod = SkeletonStrikeButtonAction;
                chargeMethod = SkeletonChargeButtonAction;
                atkMagMethod = SkeletonAtkMagicButtonAction;

                //Defense
                defenseMethod = SkeletonDefendButtonAction;
                counterMethod = SkeletonCounterButtonAction;
                giveUpMethod  = SkeletonGiveUpButtonAction;
                defMagMethod  = SkeletonDefMagicButtonAction;
            }
        }
    }
Exemple #10
0
 private void Start()
 {
     if (GameObject.FindWithTag("Player"))
     {
         GameObject enemy = GameObject.FindWithTag("Player");
         Debug.Log(enemy.name);
         //find out which enemy it is...set methods according to spefic model
         if (enemy.name == "ToonKnight")
         {
             //Offsense
             attackMethod = ToonAttackButtonAction; //test in Button Handler by calling the variable
             strikeMethod = ToonStrikeButtonAction;
             chargeMethod = ToonChargeButtonAction;
             atkMagMethod = ToonAtkMagicButtonAction;
             //Defense
             defenseMethod = ToonDefendButtonAction;
             counterMethod = ToonCounterButtonAction;
             giveUpMethod  = ToonGiveUpButtonAction;
             defMagMethod  = ToonDefMagicButtonAction;
         }
         //else if(enemy.name  == "other"){   set different/ same methods depending on class}
     }
 }
Exemple #11
0
        /// <summary>
        /// Konstruktor tworzący nowy obiekt szczura.
        /// </summary>
        /// <param name="enemyType">Typ wroga.</param>
        /// <param name="assetName">Nazwa zasobu grafiki wroga.</param>
        /// <param name="life">Liczba życia wroga.</param>
        /// <param name="strenght">Siła ataku.</param>
        /// <param name="speed">Prędkość będąca dzielnikiem liczby 42.</param>
        /// <param name="direction">Kierunek początkowego porusznia się.</param>
        /// <param name="isFreeze">Czy jest zatrzymany w miejscu.</param>
        /// <param name="evolve">Delegatura do funkcji ewolucji.</param>
        /// <param name="testMove">Delegatura do funkcji testowania ruchu.</param>
        /// <param name="webShoot">Delegatura do funkcji strzelania.</param>
        /// <param name="observe">Delegatura do funkcji obserwowania w poszukiwaniu robaczka.</param>
        /// <param name="attack">Delegatura do funckji ataku na robaczka.</param>
        public Rat(EnemyType enemyType, string assetName, int?life, int strenght, int speed, Direction direction, bool isFreeze, EvolveDelegate evolve, TestMoveDelegate testMove, WebShootDelegate webShoot, ObserveDelegate observe, AttackDelegate attack) : base(enemyType, assetName, life, strenght, speed, direction, isFreeze, evolve, testMove, webShoot, observe, attack)
        {
            _testMove       = TestMove;
            _attack         = Attack;
            _observe        = Observe;
            _visitedGrounds = new bool[20, 20];
            _prevGrounds    = new Ground[20, 20];
            x = 19;
            y = 0;

            // A*
            _distance = new double[20, 20];
            for (int i = 0; i < _distance.GetLength(0); i++)
            {
                for (int j = 0; j < _distance.GetLength(1); j++)
                {
                    _distance[i, j] = double.MaxValue;
                }
            }
            _t              = new List <Tuple <Ground, int, int> >();
            _aIsEnabled     = false;
            _aStarGrounds   = new Tuple <Ground, int, int> [20, 20];
            _aNextPositions = new Stack <Point>();
            //_aStarGrounds = new List<Ground>();
        }
    // Update is called once per frame
    void Update()
    {
        movement.x = Input.GetAxisRaw("Horizontal");
        movement.y = Input.GetAxisRaw("Vertical");
        float speed = 720.0f;

        if (depth == 0)
        {
            optionSelector.SetActive(true);
            if (!rotating)
            {
                switch (currindex)
                {
                case (int)RadialOptions.attack:
                    if (Input.GetKeyDown("space"))
                    {
                        at = null;
                        audio.PlayOneShot((AudioClip)Resources.Load("Sounds/SecondaryMenuOpen"));
                        Debug.Log("opening enemy selector");
                        enemySelector.SetActive(true);
                        depth++;
                        enemySelectorOpen  = true;
                        enemySelectorIndex = 0;
                        directionPanel.SetActive(true);
                        directionText.text       = "Attack which enemy?";
                        directionShadowText.text = "Attack which enemy?";
                        optionSelector.SetActive(false);
                    }
                    break;

                case (int)RadialOptions.items:
                    if (Input.GetKeyDown("space"))
                    {
                        audio.PlayOneShot((AudioClip)Resources.Load("Sounds/SecondaryMenuOpen"));
                        Debug.Log("opening item list");
                        itemList.SetActive(true);
                        depth++;
                        itemMenu = true;
                        directionPanel.SetActive(true);
                        directionText.text       = "Pick an item to use.";
                        directionShadowText.text = "Pick an item to use.";
                        optionSelector.SetActive(false);
                    }
                    break;

                case (int)RadialOptions.tactics:
                    break;

                case (int)RadialOptions.skills:
                    if (Input.GetKeyDown("space"))
                    {
                        audio.PlayOneShot((AudioClip)Resources.Load("Sounds/SecondaryMenuOpen"));
                        Debug.Log("opening skill list");
                        skillList.SetActive(true);
                        depth++;
                        skillMenu = true;
                        directionPanel.SetActive(true);
                        directionText.text       = "No skills, embarassing...";
                        directionShadowText.text = "No skills, embarassing...";
                        optionSelector.SetActive(false);
                    }
                    break;
                }
                if (movement.x <= -.8f)
                {
                    rotating   = true;
                    angleinc   = 90;
                    currindex += 1;
                    if (currindex >= numindices)
                    {
                        currindex = 0;
                    }
                    direction = 1;
                    click.Play();
                }
                else if (movement.x >= .8f)
                {
                    rotating   = true;
                    angleinc   = -90;
                    currindex -= 1;
                    if (currindex < 0)
                    {
                        currindex = numindices - 1;
                    }
                    direction = -1;
                    click.Play();
                }
            }
            else
            {
                if (direction < 0)
                {
                    angle    -= Time.deltaTime * speed;
                    angleinc += Time.deltaTime * speed;
                    if (angleinc >= 0)
                    {
                        rotating = false;
                        angle    = currindex * 90.0f;
                    }
                }
                if (direction > 0)
                {
                    angle    += Time.deltaTime * speed;
                    angleinc -= Time.deltaTime * speed;
                    if (angleinc <= 0)
                    {
                        rotating = false;
                        angle    = currindex * 90.0f;
                    }
                }
            }
        }
        else if (depth == 1 && itemMenu)
        {
            int topItemIndex      = itemSelectorIndex - (itemSelectorIndex % 4);            //the magic number 4 here is the number of items shown at a time
            int itemNameTextIndex = 0;
            for (int i = topItemIndex; i < useableItems.Count && i < topItemIndex + 4; i++) //same here with the 4
            {
                itemTexts[itemNameTextIndex].text = pd.masterItemDirectory.dir[(int)useableItems[i]].name;
                itemNameTextIndex++;
            }
            while (itemNameTextIndex < 4)
            {
                itemTexts[itemNameTextIndex].text = "";
                itemNameTextIndex++;
            }
            if (useableItems.Count == 0)
            {
                itemTexts[0].text = "No items!";
                hpTextNum.text    = "N/A";
                enTextNum.text    = "N/A";
            }
            else
            {
                hpTextNum.text = pd.masterItemDirectory.dir[(int)useableItems[itemSelectorIndex]].hp.ToString();
                enTextNum.text = pd.masterItemDirectory.dir[(int)useableItems[itemSelectorIndex]].en.ToString();
            }
            if (Input.GetKeyDown(KeyCode.LeftShift))
            {
                audio.PlayOneShot((AudioClip)Resources.Load("Sounds/SecondaryMenuClose"));
                Debug.Log("exiting item menu");
                itemMenu = false;
                depth--;
                itemList.SetActive(false);
                directionPanel.SetActive(false);
                return;
            }
            if (currMoveTimer >= 0.0f)
            {
                currMoveTimer -= Time.deltaTime;
            }
            if (movement.y >= .8f && currMoveTimer <= 0.0f)
            {
                audio.PlayOneShot((AudioClip)Resources.Load("Sounds/ItemSelectorMove"));
                itemSelectorIndex--;
                if (itemSelectorIndex < 0)
                {
                    if (useableItems.Count == 0)
                    {
                        itemSelectorIndex = 0;
                    }
                    else
                    {
                        itemSelectorIndex = useableItems.Count - 1;
                    }
                }
                if (!held)
                {
                    held          = true;
                    currMoveTimer = firstMoveTimer;
                }
                else
                {
                    currMoveTimer = heldMoveTimer;
                }
            }
            else if (movement.y <= -.8f && currMoveTimer <= 0.0)
            {
                audio.PlayOneShot((AudioClip)Resources.Load("Sounds/ItemSelectorMove"));
                itemSelectorIndex++;
                if (itemSelectorIndex > useableItems.Count - 1)
                {
                    itemSelectorIndex = 0;
                }
                if (!held)
                {
                    held          = true;
                    currMoveTimer = firstMoveTimer;
                }
                else
                {
                    currMoveTimer = heldMoveTimer;
                }
            }
            else if (movement.y > -0.8f && movement.y < 0.8f)
            {
                held          = false;
                currMoveTimer = -1.0f;
            }


            if (Input.GetKeyDown(KeyCode.Space))
            {
                if (useableItems.Count > 0) //use the currently selected item
                {
                    Battler player = bm.GetCurrentBattler();
                    int     hpheal = pd.masterItemDirectory.dir[(int)useableItems[itemSelectorIndex]].hp;
                    int     enheal = pd.masterItemDirectory.dir[(int)useableItems[itemSelectorIndex]].en;
                    bm.HealBattler(hpheal, enheal, player);
                    pd.RemoveItem(useableItems[itemSelectorIndex]);
                    useableItems.RemoveAt(itemSelectorIndex);
                    itemSelectorIndex = 0;
                    depth             = 0;
                    itemMenu          = false;
                    itemList.SetActive(false);
                    bm.YieldTurn();
                    gameObject.SetActive(false);
                    directionPanel.SetActive(false);
                }
            }

            itemSelectorTransform.anchoredPosition = new Vector3(4, -(itemSelectorIndex % 4) * 24 - 12, 0);
        }
        else if (depth == 1 && enemySelectorOpen)
        {
            List <Battler> enemyList = bm.GetEnemies();
            //handle movement of the enemy selector cursor
            //the if below just lets me collapse all of the cursor movement related code super easy
            if (true)
            {
                if (Input.GetKeyDown(KeyCode.LeftShift))
                {
                    audio.PlayOneShot((AudioClip)Resources.Load("Sounds/SecondaryMenuClose"));
                    Debug.Log("exiting enemy selector menu");
                    enemySelectorOpen = false;
                    depth--;
                    enemySelector.SetActive(false);
                    directionPanel.SetActive(false);
                    return;
                }
                if (currMoveTimer >= 0.0f)
                {
                    currMoveTimer -= Time.deltaTime;
                }
                if ((movement.y >= .8f || movement.x >= .8f) && currMoveTimer <= 0.0f)
                {
                    audio.PlayOneShot((AudioClip)Resources.Load("Sounds/ItemSelectorMove"));
                    enemySelectorIndex--;
                    if (enemySelectorIndex < 0)
                    {
                        enemySelectorIndex = enemyList.Count - 1;
                    }
                    if (!held)
                    {
                        held          = true;
                        currMoveTimer = firstMoveTimer;
                    }
                    else
                    {
                        currMoveTimer = heldMoveTimer;
                    }
                }
                else if ((movement.y <= -.8f || movement.x <= -.8f) && currMoveTimer <= 0.0)
                {
                    audio.PlayOneShot((AudioClip)Resources.Load("Sounds/ItemSelectorMove"));
                    enemySelectorIndex++;
                    if (enemySelectorIndex > enemyList.Count - 1)
                    {
                        enemySelectorIndex = 0;
                    }
                    if (!held)
                    {
                        held          = true;
                        currMoveTimer = firstMoveTimer;
                    }
                    else
                    {
                        currMoveTimer = heldMoveTimer;
                    }
                }
                else if (movement.y > -0.8f && movement.y < 0.8f && movement.x < 0.8f && movement.x > -0.8f)
                {
                    held          = false;
                    currMoveTimer = -1.0f;
                }
            }
            Battler currEnemy            = enemyList[enemySelectorIndex];
            Vector3 distFromCenterBattle = currEnemy.sprite.transform.position - bm.gameObject.transform.position;
            enemySelectorTransform.anchoredPosition = (distFromCenterBattle * 32) + new Vector3(-16, 0, 0); //32 is the pixels per unit and 16 just offsets the selector above the enemy
            enemySelectorNameplateText.text         = currEnemy.name;
            enemySelectorHPPlateText.text           = currEnemy.hp.ToString();
            if (Input.GetKeyDown(KeyCode.Space))
            {
                if (at == null)
                {
                    bm.PlayerAttack(currEnemy);
                    gameObject.SetActive(false);
                    enemySelector.SetActive(false);
                    directionPanel.SetActive(false);
                    depth             = 0;
                    enemySelectorOpen = false;
                }
                else
                {
                    Battler player = bm.GetCurrentBattler();
                    player.en -= spDeduction;
                    bm.BattlerAttack(at, player, currEnemy);
                    gameObject.SetActive(false);
                    enemySelector.SetActive(false);
                    directionPanel.SetActive(false);
                    depth             = 0;
                    enemySelectorOpen = false;
                }
            }
        }
        else if (depth == 1 && skillMenu)
        {
            useableSkills = pd.GetUseableSkills();
            int topSkillIndex      = skillSelectorIndex - (skillSelectorIndex % 4);            //the magic number 4 here is the number of items shown at a time
            int skillNameTextIndex = 0;
            for (int i = topSkillIndex; i < useableSkills.Count && i < topSkillIndex + 4; i++) //same here with the 4
            {
                skillTexts[skillNameTextIndex].text = useableSkills[i].name;
                skillNameTextIndex++;
            }
            while (skillNameTextIndex < 4)
            {
                skillTexts[skillNameTextIndex].text = "";
                skillNameTextIndex++;
            }
            if (useableSkills.Count == 0)
            {
                skillTexts[0].text  = "No skills!";
                skillEnTextNum.text = "N/A";
            }
            else
            {
                skillEnTextNum.text = useableSkills[skillSelectorIndex].reqEn.ToString();
            }
            if (Input.GetKeyDown(KeyCode.LeftShift))
            {
                audio.PlayOneShot((AudioClip)Resources.Load("Sounds/SecondaryMenuClose"));
                Debug.Log("exiting skill menu");
                skillMenu = false;
                depth--;
                skillList.SetActive(false);
                directionPanel.SetActive(false);
                return;
            }
            if (currMoveTimer >= 0.0f)
            {
                currMoveTimer -= Time.deltaTime;
            }
            if (movement.y >= .8f && currMoveTimer <= 0.0f)
            {
                audio.PlayOneShot((AudioClip)Resources.Load("Sounds/ItemSelectorMove"));
                skillSelectorIndex--;
                if (skillSelectorIndex < 0)
                {
                    if (useableSkills.Count == 0)
                    {
                        skillSelectorIndex = 0;
                    }
                    else
                    {
                        skillSelectorIndex = useableSkills.Count - 1;
                    }
                }
                if (!held)
                {
                    held          = true;
                    currMoveTimer = firstMoveTimer;
                }
                else
                {
                    currMoveTimer = heldMoveTimer;
                }
            }
            else if (movement.y <= -.8f && currMoveTimer <= 0.0)
            {
                audio.PlayOneShot((AudioClip)Resources.Load("Sounds/ItemSelectorMove"));
                skillSelectorIndex++;
                if (skillSelectorIndex > useableSkills.Count - 1)
                {
                    skillSelectorIndex = 0;
                }
                if (!held)
                {
                    held          = true;
                    currMoveTimer = firstMoveTimer;
                }
                else
                {
                    currMoveTimer = heldMoveTimer;
                }
            }
            else if (movement.y > -0.8f && movement.y < 0.8f)
            {
                held          = false;
                currMoveTimer = -1.0f;
            }
            if (useableSkills.Count > 0)
            {
                directionText.text       = useableSkills[skillSelectorIndex].desc;
                directionShadowText.text = useableSkills[skillSelectorIndex].desc;
            }
            if (Input.GetKeyDown(KeyCode.Space))
            {
                Battler player = bm.GetCurrentBattler();
                if (useableSkills.Count > 0 && useableSkills[skillSelectorIndex].reqEn <= player.en) //use the currently selected item
                {
                    if (useableSkills[skillSelectorIndex].targetsEnemy)
                    {
                        spDeduction        = useableSkills[skillSelectorIndex].reqEn;
                        at                 = useableSkills[skillSelectorIndex].skill;
                        skillSelectorIndex = 0;
                        skillMenu          = false;
                        skillList.SetActive(false);
                        audio.PlayOneShot((AudioClip)Resources.Load("Sounds/SecondaryMenuOpen"));
                        Debug.Log("opening enemy selector");
                        enemySelector.SetActive(true);
                        depth              = 1;
                        enemySelectorOpen  = true;
                        enemySelectorIndex = 0;
                        directionPanel.SetActive(true);
                        directionText.text       = "Attack which enemy?";
                        directionShadowText.text = "Attack which enemy?";
                        optionSelector.SetActive(false);
                    }
                    else
                    {
                        player.en -= useableSkills[skillSelectorIndex].reqEn;
                        bm.BattlerAttack(useableSkills[skillSelectorIndex].skill, player, null);
                        skillSelectorIndex = 0;
                        depth     = 0;
                        skillMenu = false;
                        skillList.SetActive(false);
                        gameObject.SetActive(false);
                        directionPanel.SetActive(false);
                    }
                }
            }

            skillSelectorTransform.anchoredPosition = new Vector3(4, -(skillSelectorIndex % 4) * 24 - 12, 0);
        }
        rt.transform.eulerAngles = new Vector3(0, 0, angle);
    }
Exemple #13
0
 public ProjectileArc(AttackDelegate attackGenerator, int radius)
 {
     AttackGenerator = attackGenerator;
     Radius          = radius;
 }
Exemple #14
0
 public ProjectileImpactAttack(AttackDelegate attackGenerator)
 {
     AttackGenerator = attackGenerator;
 }
Exemple #15
0
 public ProjectileImpactExplosion(AttackDelegate attackGenerator, int radius)
 {
     AttackGenerator = attackGenerator;
     Radius          = radius;
 }
Exemple #16
0
 public AttackInfo(AttackDelegate v_attack, float v_delay_after_attack, float v_next_attack_chance = 1.0f)
 {
     attack             = v_attack;
     delay_after_attack = v_delay_after_attack;
     next_attack_chance = v_next_attack_chance;
 }
 private void Awake()
 {
     onAttack = null;
 }
Exemple #18
0
 public AttackRequest(AttackDelegate attackDelegate, int attackPower)
 {
     this.attackDelegate = attackDelegate;
     this.attackPower = attackPower;
 }
Exemple #19
0
 public void BattlerAttack(AttackDelegate ad, Battler aggressor, Battler target)
 {
     currstate = states.turnattack;
     StartCoroutine(ad(aggressor, target, this));
 }
Exemple #20
0
    // Update is called once per frame
    void Update()
    {
        switch (currstate)
        {
        case states.dead:
            break;

        case states.battlewon:
            generalTimer += Time.deltaTime;
            if (generalTimer >= 3.0f)
            {
                generalTimer = 0.0f;
                currstate    = states.dead;
                if (cbbattleend == null)
                {
                    cs.StartWipe(EndBattle, movscript.UnlockMovement);
                }
                else
                {
                    cs.StartWipe(EndBattle, cbbattleend);
                }
            }
            break;

        case states.turnstart:
        {
            currbattler = battlerQueue[0];
            battlerQueue.RemoveAt(0);
            battlerQueue.Add(currbattler);
            currbattler.StartFlashing(1.5f);
            if (!currbattler.isPlayerControlled)
            {
                //generalTimer += Time.deltaTime;
                //if (generalTimer >= 2.0f)
                //{
                generalTimer = 0.0f;
                currstate    = states.turnattack;
                AttackDelegate ad = currbattler.GetAttack(player, this);
                StartCoroutine(ad(currbattler, player, this));
                //}
            }
            else
            {
                choiceRadial.SetActive(true);
            }
            currstate = states.turnattack;
            break;
        }

        case states.turnattack:
        {
            break;
        }

        case states.turnend:
        {
            generalTimer += Time.deltaTime;
            if (generalTimer >= 1.0f)
            {
                generalTimer = 0.0f;
                currstate    = states.turnstart;
            }
            break;
        }

        default:
            currstate = states.dead;
            break;
        }
        //player.UpdateBattler();
        //enemy.UpdateBattler();
        for (int i = 0; i < registeredBattlers.Count; i++)
        {
            registeredBattlers[i].UpdateBattler();
        }
        playerhp.text    = player.hp.ToString();
        playermaxhp.text = player.maxhp.ToString();
        playeren.text    = player.en.ToString();
        playermaxen.text = player.maxen.ToString();
    }