public async Task BaseMonster_GetDamageTotalString_Default_Speed_Should_Pass()
        {
            // Arrange
            // Add each model here to warm up and load it.
            Game.Helpers.DataSetsHelper.WarmUp();

            await ItemIndexViewModel.Instance.CreateAsync(new ItemModel { Attribute = AttributeEnum.Attack, Value = 300, Id = "PrimaryHand", Damage = 1 });

            var data = new BaseMonster();

            data.Level = 1;

            // Add the first item
            data.AddItem(ItemLocationEnum.PrimaryHand, (await ItemIndexViewModel.Instance.ReadAsync("PrimaryHand")).Id);

            Game.Helpers.DiceHelper.EnableForcedRolls();
            Game.Helpers.DiceHelper.SetForcedRollValue(1);

            // Act

            // Add the second item, this will return the first item as the one replaced
            var result = data.GetDamageTotalString;

            // Reset
            Game.Helpers.DiceHelper.DisableForcedRolls();

            // Assert
            Assert.AreEqual("1 + 1D 1", result);
        }
 public void UnsubscribeActiveMonster(BaseMonster monster)
 {
     if (activeMonsters.Contains(monster))
     {
         activeMonsters.Remove(monster);
     }
 }
        public void TurnEngine_TurnAsAttack_Character_Attacks_Monster_Levels_Up_Should_Pass()
        {
            // Arrange
            var Monster       = new BaseMonster();
            var MonsterPlayer = new PlayerInfoModel(Monster);

            Engine.MonsterList.Add(MonsterPlayer);

            var Character = new BaseCharacter();
            //Character.//ExperienceTotal = 300;    // Enough for next level

            var CharacterPlayer = new PlayerInfoModel(Character);

            Engine.CharacterList.Add(CharacterPlayer);

            // Forece a Miss
            DiceHelper.EnableForcedRolls();
            DiceHelper.SetForcedRollValue(20);

            // Act
            var result = Engine.TurnAsAttack(CharacterPlayer, MonsterPlayer);

            // Reset
            DiceHelper.DisableForcedRolls();

            // Assert
            Assert.AreEqual(true, result);
            Assert.AreEqual(2, CharacterPlayer.Level);
        }
        public async Task MonsterModel_DropAllItems_Default_Should_Pass()
        {
            await ItemIndexViewModel.Instance.CreateAsync(new ItemModel { Attribute = AttributeEnum.Attack, Value = 1, Id = "head" });

            var item = ItemIndexViewModel.Instance.Dataset.FirstOrDefault();

            // Arrange
            var data = new BaseMonster
            {
                Head        = item.Id,
                Necklass    = item.Id,
                PrimaryHand = item.Id,
                OffHand     = item.Id,
                RightFinger = item.Id,
                LeftFinger  = item.Id,
                Feet        = item.Id,
            };

            // Act
            var result = data.DropAllItems();

            // Reset

            // Assert
            Assert.IsNotNull(result);
        }
        //[Test]
        public void RoundEngine_Monsters_Buffed_Ten_Should_Return_True()
        {
            //Arrange
            Engine.BattleScore.RoundCount = 101;
            Engine.MonsterList.Clear();

            var Monster = new BaseMonster
            {
                Speed      = 10,
                CurrHealth = 10,
                MaxHealth  = 10,
                Attack     = 10,
                Defense    = 10,
                Name       = "A",
            };

            var MonsterPlayer = new PlayerInfoModel(Monster);

            Engine.MonsterList.Add(MonsterPlayer);
            Engine.MaxNumberPartyMonsters = 1;
            //Act
            Engine.AddMonstersToRound();
            var result = Engine.MonsterList;

            //Reset
            Engine.EndRound();

            //Assert
            Assert.AreEqual(true, result[0].Attack == 100);
        }
        public async Task BaseMonster_AddItem_Default_Replace_Should_Pass()
        {
            // Arrange
            var data = new BaseMonster();

            await ItemIndexViewModel.Instance.CreateAsync(new ItemModel { Attribute = AttributeEnum.Attack, Value = 1, Id = "head" });

            await ItemIndexViewModel.Instance.CreateAsync(new ItemModel { Attribute = AttributeEnum.Attack, Value = 20, Id = "necklass" });

            var itemOld = ItemIndexViewModel.Instance.Dataset.FirstOrDefault();
            var itemNew = ItemIndexViewModel.Instance.Dataset.LastOrDefault();

            // Add the first item
            data.AddItem(ItemLocationEnum.Head, itemOld.Id);

            // Act

            // Add the second item, this will return the first item as the one replaced
            var result = data.AddItem(ItemLocationEnum.Head, itemNew.Id);

            // Reset

            // Assert
            Assert.AreEqual(itemOld.Id, result.Id);
        }
        public void Model_BaseMonster_Update_With_Valid_Data_Should_Pass()
        {
            var myDataDefault = DefaultModels.MonsterDefault();
            var myData        = new BaseMonster();

            myData.Update(myDataDefault);

            // Validate the new BaseMonster has the expected fields.
            // All fields should match.

            // The attirbute string is what is unique about creating from BaseBaseMonster, and should be passed down...
            Assert.AreEqual(myData.UniqueItem, myDataDefault.UniqueItem, "UniqueItem " + TestContext.CurrentContext.Test.Name);

            Assert.AreEqual(myData.Alive, myDataDefault.Alive, "Alive " + TestContext.CurrentContext.Test.Name);
            Assert.AreEqual(myData.Name, myDataDefault.Name, "Name " + TestContext.CurrentContext.Test.Name);
            Assert.AreEqual(myData.Description, myDataDefault.Description, "Description " + TestContext.CurrentContext.Test.Name);
            Assert.AreEqual(myData.Level, myDataDefault.Level, "Level " + TestContext.CurrentContext.Test.Name);
            Assert.AreEqual(myData.ExperienceTotal, myDataDefault.ExperienceTotal, "ExperienceTotal " + TestContext.CurrentContext.Test.Name);
            Assert.AreEqual(myData.ImageURI, myDataDefault.ImageURI, "ImageURI " + TestContext.CurrentContext.Test.Name);

            Assert.AreEqual(myData.Head, myDataDefault.Head, "Head " + TestContext.CurrentContext.Test.Name);
            Assert.AreEqual(myData.Feet, myDataDefault.Feet, "Feet " + TestContext.CurrentContext.Test.Name);
            Assert.AreEqual(myData.Necklass, myDataDefault.Necklass, "Necklass " + TestContext.CurrentContext.Test.Name);
            Assert.AreEqual(myData.RightFinger, myDataDefault.RightFinger, "RightFinger " + TestContext.CurrentContext.Test.Name);
            Assert.AreEqual(myData.LeftFinger, myDataDefault.LeftFinger, "LeftFinger " + TestContext.CurrentContext.Test.Name);
            Assert.AreEqual(myData.Feet, myDataDefault.Feet, "Feet " + TestContext.CurrentContext.Test.Name);

            // Validate the Attributes
            Assert.AreEqual(myData.AttributeString, myDataDefault.AttributeString, "AttributeString " + TestContext.CurrentContext.Test.Name);

            Assert.AreEqual(myData.Damage, myDataDefault.Damage, "AttributeString " + TestContext.CurrentContext.Test.Name);
        }
        public void TurnEngine_TurnAsAttack_Monster_Attacks_Character_Hit_Should_Pass()
        {
            // Arrange
            var Monster       = new BaseMonster();
            var MonsterPlayer = new PlayerInfoModel(Monster);

            Engine.MonsterList.Add(MonsterPlayer);

            var Character       = new BaseCharacter();
            var CharacterPlayer = new PlayerInfoModel(Character);

            Engine.CharacterList.Add(CharacterPlayer);

            // Forece a Miss
            DiceHelper.EnableForcedRolls();
            DiceHelper.SetForcedRollValue(20);

            // Act
            var result = Engine.TurnAsAttack(MonsterPlayer, CharacterPlayer);

            // Reset
            DiceHelper.DisableForcedRolls();

            // Assert
            Assert.AreEqual(true, result);
        }
Exemple #9
0
 public MoveAction(BaseMonster owner, Vector3 trg,Action<EndCause> callback)
     : base(owner, callback)
 {
     this.trg = new Vector3(trg.x, owner.transform.position.y, trg.z);
     //GameObject.Instantiate(DataBaseController.Instance.debugCube, this.trg, Quaternion.identity);
     owner.Control.MoveTo(trg);
 }
    IEnumerator KnockBackOfSpawnBoss(BaseMonster monster)
    {
        if (monster.attackType != MonsterAttackType.Boss)
        {
            yield break;
        }
        var charactersNearbyTower = characterDisplayList.list.Where(x => Mathf.Abs(x.transform.position.x - spawningPoint.position.x) <= bossSpawnKnockBackRange).ToList();

        if (!charactersNearbyTower.Any())
        {
            yield break;
        }
        charactersNearbyTower.ForEach(x => x.StopMove());
        var targetPos = charactersNearbyTower.Select(x => new Vector2(x.transform.position.x - bossSpawnKnockBackRange, x.transform.position.y)).ToList();
        var originPos = charactersNearbyTower.Select(x => x.transform.position).ToList();
        var percent   = 0f;

        while (percent <= 1f)
        {
            var step = Time.deltaTime * _settings.deltaMoveStep * 12f;
            percent += step;
            for (var i = 0; i < charactersNearbyTower.Count; i++)
            {
                var character = charactersNearbyTower[i];
                character.transform.position = Vector2.Lerp(originPos[i], targetPos[i], percent);
            }
            yield return(null);
        }
        charactersNearbyTower.ForEach(x => x.CanMove());
    }
Exemple #11
0
    /// <summary>
    /// 스킬을 사용합니다.
    /// </summary>
    /// <param name="attacker">스킬 시전자</param>
    /// <param name="target">스킬을 맞는 대상</param>
    /// <param name="setCool">true일 경우 스킬의 쿨타임이 생깁니다.</param>
    public void Use(BaseMonster attacker, BaseMonster target, CancellationToken cancellation, bool setCool = true)
    {
        if (Cooldown > 0)
        {
            return;
        }

        try
        {
            Logic(attacker, target, cancellation);
            Debug.Log($"스킬 종료");
        }
        catch (AggregateException e) when(e.InnerException is TaskCanceledException)
        {
            Debug.Log($"스킬 중단함");
            return;
        }
        finally
        {
            if (setCool)
            {
                SetCooldownToDefault();
                Task.Run(() => DecreaseCooldownAsync(cancellation));
            }
            Debug.Log($"set cooldown: {Cooldown}");
        }
    }
Exemple #12
0
        public override void ButtonBehavior1()
        {
            BaseMonster BM = MonsterFactory.CreateBaseMonster(Session.CurrentPlayer.Level, true);

            Session.CurrentLocation.AddCharacter(BM);

            Session.ReplaceDisplayText(BM.Name + " has appeared!");
        }
Exemple #13
0
 private void Do(BaseMonster monster)
 {
     if (!isActivated)
     {
         isActivated = true;
         StartCoroutine(WaitForAction());
     }
 }
Exemple #14
0
 public AttackAction(BaseMonster owner, Unit target ,Action<EndCause> endCallback)
     : base(owner, endCallback)
 {
     this.target = target;
     lastTargetScanPos = target.transform.position;
     lastTargetScanPos = new Vector3(lastTargetScanPos.x, owner.transform.position.y, lastTargetScanPos.z);
     rangeAttackSqr = owner.curWeapon.Parameters.range * owner.curWeapon.Parameters.range;
 }
Exemple #15
0
    public void UpdateStatus()
    {
        rightPartnerData = rightPartner.GetComponent <BaseMonster>();
        leftPartnerData  = leftPartner.GetComponent <BaseMonster>();

        if (!PlayerPrefs.HasKey("Hunger1"))
        {
            Debug.Log("no hunger key");
            rightPartnerData._hunger = 100;
            leftPartnerData._hunger  = 100;
            PlayerPrefs.SetFloat("Hunger1", rightPartnerData._hunger);
            PlayerPrefs.SetFloat("Hunger2", leftPartnerData._hunger);
        }
        else
        {
            Debug.Log("you have a hunger key");
            Debug.Log("you hunger1 is " + PlayerPrefs.GetFloat("Hunger1"));
            rightPartnerData._hunger = PlayerPrefs.GetFloat("Hunger1");
            leftPartnerData._hunger  = PlayerPrefs.GetFloat("Hunger2");
        }

        if (!PlayerPrefs.HasKey("Happy1"))
        {
            Debug.Log("no happy key");
            rightPartnerData._happiness = 100;
            leftPartnerData._happiness  = 100;
            PlayerPrefs.SetFloat("Happy1", rightPartnerData._happiness);
            PlayerPrefs.SetFloat("Happy2", leftPartnerData._happiness);
        }
        else
        {
            Debug.Log("your happy1 key is " + PlayerPrefs.GetFloat("Happy1"));
            rightPartnerData._happiness = PlayerPrefs.GetFloat("Happy1");
            leftPartnerData._happiness  = PlayerPrefs.GetFloat("Happy2");
        }

        if (!PlayerPrefs.HasKey("then"))
        {
            PlayerPrefs.SetString("then", getStringTime());
        }

        //TimeSpan ts = getTimeSpan();

        HungerPassTime();
        HappyPassTime();

        Debug.Log(getTimeSpan().ToString());
        Debug.Log(getTimeSpan().TotalHours);

        if (_serverTime)
        {
            updateServer();
        }
        else
        {
            InvokeRepeating("updateDevice", 0f, 30f);
        }
    }
Exemple #16
0
 public StayAction(BaseMonster owner, Action<EndCause> endCallback) 
     : base(owner, endCallback)
 {
     timer = MainController.Instance.TimerManager.MakeTimer(TimeSpan.FromSeconds(UnityEngine.Random.Range(2, 10)));
     timer.OnTimer += () =>
     {
         endCallback(EndCause.no);
     };
 }
Exemple #17
0
        void onCollisionStayHero(BaseMonster monster, Hero hero)
        {
            var damage = monster.Attack(hero.transform.position);

            if (damage > 0)
            {
                hero.ReceiveDamage(damage);
            }
        }
    MonsterDisplay InstanceMonster(BaseMonster baseMonster)
    {
        var z = Random.Range(-1f, 1f);
        var spawningPosition = spawningPoint.position + Vector3.forward * z;
        var instance         = Instantiate <MonsterDisplay> (baseMonster.displayPrefab, spawningPosition, Quaternion.identity);

        instance.baseObject = baseMonster;
        return(instance);
    }
Exemple #19
0
        /// <summary>
        /// Create Random Character for the battle
        /// </summary>
        /// <param name="MaxLevel"></param>
        /// <returns></returns>
        public static BaseMonster GetRandomMonster(int MaxLevel)
        {
            // If there are no Monsters in the system, return a default one
            if (MonsterViewModel.Instance.Dataset.Count == 0)
            {
                return(new BaseMonster());
            }

            var rnd = DiceHelper.RollDice(1, MonsterViewModel.Instance.Dataset.Count);

            var result = new BaseMonster(MonsterViewModel.Instance.Dataset.ElementAt(rnd - 1))
            {
                Level = DiceHelper.RollDice(1, MaxLevel),

                // Randomize Name
                Name        = GetMonsterName(),
                Description = GetMonsterDescription(),

                // Randomize the Attributes
                Attack  = GetAbilityValue(),
                Speed   = GetAbilityValue(),
                Defense = GetAbilityValue(),

                ImageURI = GetMonsterImage(),

                Difficulty = GetMonsterDifficultyValue()
            };

            // Adjust values based on Difficulty
            result.Attack  = result.Difficulty.ToModifier(result.Attack);
            result.Defense = result.Difficulty.ToModifier(result.Defense);
            result.Speed   = result.Difficulty.ToModifier(result.Speed);
            result.Level   = result.Difficulty.ToModifier(result.Level);

            // Get the new Max Health
            result.MaxHealth = DiceHelper.RollDice(result.Level, 10);

            // Adjust the health, If the new Max Health is above the rule for the level, use the original
            var MaxHealthAdjusted = result.Difficulty.ToModifier(result.MaxHealth);

            if (MaxHealthAdjusted < result.Level * 10)
            {
                result.MaxHealth = MaxHealthAdjusted;
            }

            // Level up to the new level
            result.LevelUpToValue(result.Level);

            // Set ExperienceRemaining so Monsters can both use this method
            result.ExperienceRemaining = LevelTableHelper.Instance.LevelDetailsList[result.Level + 1].Experience;

            // Enter Battle at full health
            result.CurrHealth = result.MaxHealth;

            return(result);
        }
Exemple #20
0
        public BattleInstance(GameSession session, PlayerCharacter player, BaseMonster monster)
        {
            CurrentSession = session;

            CurrentSession.ButtonContext = new BattleButtonContext(CurrentSession, this);

            CurrentPlayer  = player;
            CurrentMonster = monster;
            DiceRoller     = new Roller();
        }
Exemple #21
0
 public FreezEffet(Unit targetUnit, float totalTime) 
     : base(targetUnit, totalTime)
 {
     EffectType = EffectType.freez;
     monster = targetUnit as BaseMonster;
     if (monster != null)
     {
         monster.Disable();
     }
 }
        public void BaseMonster_Set_Get_Default_Should_Pass()
        {
            // Arrange
            var result = new BaseMonster();

            // Act
            result.Id                  = "bogus";
            result.ImageURI            = "uri";
            result.PlayerType          = PlayerTypeEnum.Monster;
            result.Alive               = false;
            result.Order               = 100;
            result.Guid                = "guid";
            result.ListOrder           = 200;
            result.Speed               = 300;
            result.Level               = 400;
            result.ExperienceRemaining = 500;
            result.CurrHealth          = 600;
            result.MaxHealth           = 700;
            result.Experience          = 800;
            result.Defense             = 900;
            result.Attack              = 123;
            result.Head                = "head";
            result.Feet                = "feet";
            result.Necklass            = "necklass";
            result.PrimaryHand         = "primaryhand";
            result.OffHand             = "offhand";
            result.RightFinger         = "rightfinger";
            result.LeftFinger          = "leftfinger";

            // Reset

            // Assert
            Assert.AreEqual("bogus", result.Id);
            Assert.AreEqual("uri", result.ImageURI);
            Assert.AreEqual(PlayerTypeEnum.Monster, result.PlayerType);
            Assert.AreEqual(false, result.Alive);
            Assert.AreEqual(100, result.Order);
            Assert.AreEqual("guid", result.Guid);
            Assert.AreEqual(200, result.ListOrder);
            Assert.AreEqual(300, result.Speed);
            Assert.AreEqual(400, result.Level);
            Assert.AreEqual(500, result.ExperienceRemaining);
            Assert.AreEqual(600, result.CurrHealth);
            Assert.AreEqual(700, result.MaxHealth);
            Assert.AreEqual(800, result.Experience);
            Assert.AreEqual(900, result.Defense);
            Assert.AreEqual(123, result.Attack);
            Assert.AreEqual("head", result.Head);
            Assert.AreEqual("feet", result.Feet);
            Assert.AreEqual("necklass", result.Necklass);
            Assert.AreEqual("primaryhand", result.PrimaryHand);
            Assert.AreEqual("offhand", result.OffHand);
            Assert.AreEqual("rightfinger", result.RightFinger);
            Assert.AreEqual("leftfinger", result.LeftFinger);
        }
Exemple #23
0
        public async Task <bool> UpdateAsync_Monster(Monster data)
        {
            var dataBase = new BaseMonster(data);
            var result   = await App.Database.UpdateAsync(dataBase);

            if (result == 1)
            {
                return(true);
            }

            return(false);
        }
        public void BaseMonster_Constructor_Default_Should_Pass()
        {
            // Arrange

            // Act
            var result = new BaseMonster();

            // Reset

            // Assert
            Assert.IsNotNull(result);
        }
        public void BaseMonster_GetHealthMax_Default_Should_Pass()
        {
            // Arrange
            var data = new BaseMonster();

            // Act
            var result = data.GetMaxHealthTotal;

            // Reset

            // Assert
            Assert.AreEqual(1, result);
        }
        public void BaseMonster_GetItemByLocation_LeftFinger_Default_Should_Pass()
        {
            // Arrange
            var data = new BaseMonster();

            // Act
            var result = data.GetItemByLocation(ItemLocationEnum.LeftFinger);

            // Reset

            // Assert
            Assert.AreEqual(null, result);
        }
Exemple #27
0
    public void clicked(GameObject click)
    {
        clickedGameObject = click;
        Debug.Log("asdafwf" + clickedGameObject.GetComponent <BaseMonster>().getHP());
        monsterSelected = clickedGameObject.GetComponent <BaseMonster>();
        select1.SetActive(false);
        select2.SetActive(false);
        select3.SetActive(false);
        monsterSelected.transform.parent.gameObject.transform.GetChild(0).gameObject.SetActive(true);
        Debug.Log("parent child " + monsterSelected.transform.parent.gameObject.transform.GetChild(0));

        msg.text = characterList[currentSelection].getPName() + " attacking " + monsterSelected.getPName();
    }
Exemple #28
0
        public void PlayerInfoModel_Constructor_Monster_Default_Should_Pass()
        {
            // Arrange
            var data = new BaseMonster();

            // Act
            var result = new PlayerInfoModel(data);

            // Reset

            // Assert
            Assert.IsNotNull(result);
        }
        public void BaseMonster_AddExperience_Default_Should_Pass()
        {
            // Arrange
            var data = new BaseMonster();

            // Act
            var result = data.AddExperience(0);

            // Reset

            // Assert
            Assert.AreEqual(false, result);
        }
        public void BaseMonster_GetItem_Default_Should_Pass()
        {
            // Arrange
            var data = new BaseMonster();

            // Act
            var result = data.GetItem("test");

            // Reset

            // Assert
            Assert.AreEqual(null, result);
        }
        public void BaseMonster_GetSpeed_Default_Should_Pass()
        {
            // Arrange
            var data = new BaseMonster();

            // Act
            var result = data.GetSpeed();

            // Reset

            // Assert
            Assert.AreEqual(1, result);
        }
        public void BaseMontser_FormatOutput_Default_Should_Pass()
        {
            // Arrange
            var data = new BaseMonster();

            // Act
            var result = data.FormatOutput();

            // Reset

            // Assert
            Assert.AreEqual(true, result.Contains("MIKE"));
        }
        public void BaseMonster_CauseDeath_Default_Should_Pass()
        {
            // Arrange
            var data = new BaseMonster();

            // Act
            var result = data.CauseDeath();

            // Reset

            // Assert
            Assert.AreEqual(false, result);
        }
        public void BaseMonster_AddItem_Unknown_Should_Fail()
        {
            // Arrange
            var data = new BaseMonster();

            // Act
            var result = data.AddItem(ItemLocationEnum.Unknown, "bogus");

            // Reset

            // Assert
            Assert.AreEqual(null, result);
        }
        public void BaseMonster_CalculateExperienceEarned_Default_Should_Pass()
        {
            // Arrange
            var data = new BaseMonster();

            // Act
            var result = data.CalculateExperienceEarned(0);

            // Reset

            // Assert
            Assert.AreEqual(0, result);
        }
Exemple #36
0
    private void OnMonsterGetHit(BaseMonster obj)
    {
        MonsterSliderHP.gameObject.SetActive(true);
        if (animator != null && !isOpen)
        {
            animator.SetTrigger(KEY_OPEN);
//            Debug.Log("SetTrigger(KEY_OPEN)");
            isOpen = true;
        }
        MonsterSliderHP.value = obj.CurHp / obj.Parameters[ParamType.Heath];
        if (timer != null)
        {
            timer.Stop();
        }
        timer = MainController.Instance.TimerManager.MakeTimer(span);
        timer.OnTimer += OnTimer;
    }
Exemple #37
0
    public AttackCloseCombat(BaseMonster owner, Unit target, Action<EndCause> endCallback,bool byHit) 
        : base(owner, target, endCallback)
    {
        if (!byHit && UnityEngine.Random.Range(0, 100) < 50)
        {
            isActivated = false;
            var dir = target.transform.position - owner.transform.position;
            owner.Control.ThisByQuaterhnion.SetLookDir(dir);
            var waitTime = UnityEngine.Random.Range(1.5f, 3f);
            activateTime = Time.time + waitTime;
//            Debug.Log("tupiiim:" + waitTime);
        }
        else
        {
            isActivated = true;
        }
    }
 public AttackCloseCombat(BaseMonster owner, Unit target, Action endCallback) 
     : base(owner, target, endCallback)
 {
 }
Exemple #39
0
 public AttackDistance(BaseMonster owner, Unit target, Action<EndCause> endCallback,bool byHit) 
     : base(owner, target, endCallback)
 {
 }
Exemple #40
0
    private void Attack(BaseMonster monster)
    {
        var bullet = DataBaseController.GetItem<Bullet>(bulletPrefab);
        bullet.Init(monster, talic, transform.position);

    }
Exemple #41
0
 private bool CanAttackMonster(BaseMonster monster)
 {
     var delta = DateTime.Now - monstersInside[monster];
     return (delta > deltaSpan);
 }
 public AttackDistance(BaseMonster owner, Unit target, Action endCallback) 
     : base(owner, target, endCallback)
 {
 }
 public AttackHitAndRun(BaseMonster owner, Unit target, Action endCallback) : base(owner, target, endCallback)
 {
 }
Exemple #44
0
 public BaseAction(BaseMonster owner,Action<EndCause> endCallback)
 {
     this.endCallback = endCallback;
     this.owner = owner;
 }