Beispiel #1
0
    protected override void Start()
    {
        //  xScale = 0.7f;
        base.Start();

        animator        = GetComponent <Animator>();
        BasewalkSpeed   = walkSpeed = 5;
        BaseSprintSpeed = SprintSpeed = 10;
        LeapSpeed       = 22;

        FrontClaw.WeaponCollisionEnterEvent.AddListener(HitTarget);
        BackClaw.WeaponCollisionEnterEvent.AddListener(HitTarget);
        SkillPool.Add(Skill.HellHoundLeap);
        SkillPool.Add(Skill.HellHoundFireball);
        SkillPool.Add(Skill.HellHoundNA);
        for (int i = 0; i < SkillPool.Count; i++)
        {
            SkillCooldowns.Add(0);
        }

        FireballPrefab = Resources.Load("Prefabs/Projectiles/FireBall") as GameObject;

        EffectXOffset = 1.3f;
        EffectWidth   = 2;
    }
Beispiel #2
0
    // Start is called before the first frame update
    protected override void Start()
    {
        base.Start();
        animator      = GetComponent <Animator>();
        BasewalkSpeed = walkSpeed = 3;
        xScale        = 0.65f;
        SwordCollider.WeaponCollisionEnterEvent.AddListener(HitTarget);
        exhaustCount = 4;
        restTimer    = 2;
        BarrierTimer = 60;

        SkillPool.Add(Skill.EliteWarriorJab);
        SkillPool.Add(Skill.EliteWarriorLeap);

        SkillPool.Add(Skill.EliteWarriorSwing);
        SkillPool.Add(Skill.EliteWarriorStormCall);
        for (int i = 0; i < SkillPool.Count; i++)
        {
            SkillCooldowns.Add(0);
        }

        BeamPrefab      = Resources.Load("Prefabs/AoE/EliteWarriorBeam") as GameObject;
        MegaBeamPrefab  = Resources.Load("Prefabs/AoE/EliteWarriorMegaBeam") as GameObject;
        WavePrefab      = Resources.Load("Prefabs/AoE/EliteWarriorWave") as GameObject;
        BarrierPrefab   = Resources.Load("Prefabs/AoE/EliteWarriorBarrier") as GameObject;
        SpikePrefab     = Resources.Load("Prefabs/AoE/ChargeSpikes") as GameObject;
        StormBoltPrefab = Resources.Load("Prefabs/AoE/StormBolt") as GameObject;
        StormCallPrefab = Resources.Load("Prefabs/AoE/StormCall") as GameObject;
        PortalPrefab    = Resources.Load("Prefabs/Characters/Portal") as GameObject;


        //Enraged = true;
        inAction = true; // wait for play to approach
        animator.Play("Wait");
    }
Beispiel #3
0
        public void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            info.AddValue("Id", Id);
            info.AddValue("Name", Name);
            info.AddValue("Introduction", Introduction);

            if (Avator != null)
            {
                MemoryStream Stream = new MemoryStream();
                Avator.Save(Stream, ImageFormat.Png);
                info.AddValue("Avator", Stream.GetBuffer());
                Stream.Close();
            }
            else
            {
                info.AddValue("Avator", Encoding.UTF8.GetBytes("NULL"));
            }

            if (Drawing != null)
            {
                MemoryStream Stream = new MemoryStream();
                Drawing.Save(Stream, Drawing.RawFormat);
                info.AddValue("Drawing", Stream.GetBuffer());
                Stream.Close();
            }
            else
            {
                info.AddValue("Drawing", Encoding.UTF8.GetBytes("NULL"));
            }

            info.AddValue("Radical", RadicalRatio);
            info.AddValue("Skills", SkillPool.ToDictionary(O => O.Key.Id, P => P.Value));

            info.AddValue("Records", Records);
        }
Beispiel #4
0
 protected override void EnrageRoar()
 {
     inAction = true;
     animator.Play("VariantEnrage");
     //add enraged skills to skillpool
     SkillPool.Add(Skill.HellHoundVariantLeap);
     SkillCooldowns.Add(0);
 }
Beispiel #5
0
            public void GivenEmptyConstructor_ThenSkillPoolInitializedCorrectly()
            {
                // arrange & act
                var results = new SkillPool();

                // assert
                Assert.IsNotNull(results[SkillType.UnarmedCombat]);
                // todo: the rest of the skills
            }
Beispiel #6
0
            public void GivenSkillValue_DisplayProperly()
            {
                // arrange
                var actual = new SkillPool();

                // act
                actual[SkillType.UnarmedCombat] = 12;
                var results = actual.Display(SkillType.UnarmedCombat);

                // assert
                Assert.AreEqual("Unarmed Combat (12)", results);
            }
Beispiel #7
0
            public void GivenSkillPresent_SetAndReturnValue()
            {
                // arrange
                var actual = new SkillPool();

                // act
                actual[SkillType.UnarmedCombat] = 12;
                var results = actual[SkillType.UnarmedCombat];

                // assert
                Assert.AreEqual(12, results);
            }
Beispiel #8
0
    void NewListData(GameobjectSO a, ref Dictionary <string, SkillPool> b)     //SO里有多少个Gameobjects就创建多少个Pool数据,并放到字典里
    {
        //SO里第N位string创建与N同名的Pool
        int length = a.keys.Count;

        b = new Dictionary <string, SkillPool>(length);
        for (int i = 0; i < length; i++)
        {
            SkillPool obj = new SkillPool();
            b.Add(a.keys[i], obj);
        }
    }
Beispiel #9
0
 public Session()
 {
     Inventory = new Inventory();
     TileEngine = new TileEngineHelper();
     Map = Globals.Instance.Content.Load<Map>("Maps\\StartLevel");
     SkillPool = Globals.Instance.Content.Load<SkillPool>("SkillPool");
     ScriptEngine.ScriptEngine.Instance.Reset();
     Party = new List<Character>();
     Party.Add(new Character("Natsu", 0, (Weapon)ItemPool.Instance.GetItem("Bare Hands"), (Armour)ItemPool.Instance.GetItem("T-Shirt")));
     Party[0].Skills.Add(SkillPool.GetSkill("AoE Attack"));
     Party[0].Skills.Add(SkillPool.GetSkill("Fire"));
     Party[0].Skills.Add(SkillPool.GetSkill("Vita"));
 }
Beispiel #10
0
 protected override void Start()
 {
     base.Start();
     animator      = GetComponent <Animator>();
     BasewalkSpeed = walkSpeed = 6;
     xScale        = 0.5f;
     SwordCollider.WeaponCollisionEnterEvent.AddListener(HitTarget);
     SkillPool.Add(Skill.WarriorSwing);
     SkillPool.Add(Skill.WarriorJab);
     SkillPool.Add(Skill.WarriorNA);
     for (int i = 0; i < SkillPool.Count; i++)
     {
         SkillCooldowns.Add(0);
     }
 }
Beispiel #11
0
    void Enrage()
    {
        Enraged = true;
        SwordGlow.SetActive(true);
        statControl.SetVulnerable();
        SkillPool.Add(Skill.EliteWarriorSpikes);
        SkillPool.Add(Skill.EliteWarriorMegaBeam);
        SkillCooldowns.Add(0);
        SkillCooldowns.Add(0);
        for (int i = 0; i < SkillCooldowns.Count; i++)
        {
            SkillCooldowns[i] = 0;
        }

        inBarrier = false;
    }
Beispiel #12
0
    // Start is called before the first frame update
    protected override void Start()
    {
        base.Start();
        xScale        = 0.5f;
        animator      = GetComponent <Animator>();
        BasewalkSpeed = walkSpeed = 5;
        FrontClaw.WeaponCollisionEnterEvent.AddListener(HitTarget);
        BackClaw.WeaponCollisionEnterEvent.AddListener(HitTarget);
        SkillPool.Add(Skill.HellbatGouge);
        SkillPool.Add(Skill.HellbatSonicWave);
        SkillPool.Add(Skill.HellbatNA);
        for (int i = 0; i < SkillPool.Count; i++)
        {
            SkillCooldowns.Add(0);
        }


        SonicWavePrefab = Resources.Load("Prefabs/Projectiles/SonicWave") as GameObject;
    }
    public static void GetCanUsePokemon()
    {
        const string path = "Assets/Resources/Config/AllPokemons.json";
        var          list = SearchPokemon()
                            .Where(x => "" != x)
                            .ToList()
                            .ConvertAll(x => Convert.ToInt32(x));
        var str        = JsonConvert.SerializeObject(list);
        var SkillPools = SearchGameObject.SearchGameObjectList <SkillPool>("Assets/Skill/SkillPoolAsset")
                         .ConvertAll(x => x.PokemonID);

        foreach (int id in list)
        {
            if (SkillPools.Contains(id))
            {
                continue;
            }
            SkillPool skillPool = ScriptableObject.CreateInstance <SkillPool>();
            skillPool.PokemonID = id;
            AssetDatabase.CreateAsset(skillPool, "Assets/Skill/SkillPoolAsset/" + id + ".asset");
        }
        File.WriteAllText(path, str, Encoding.UTF8);
    }
Beispiel #14
0
    protected override void Start()
    {
        HealthbarOffsetY = 8;
        //  xScale = 0.7f;
        base.Start();

        animator  = GetComponent <Animator>();
        restTimer = 2;
        SkillPool.Add(Skill.DemonNA);
        SkillPool.Add(Skill.DemonPunch);
        SkillPool.Add(Skill.DemonGroundBurst);
        SkillPool.Add(Skill.DemonFlameBreath);
        for (int i = 0; i < SkillPool.Count; i++)
        {
            SkillCooldowns.Add(0);
        }

        xScale = 0.5f;

        FrontClaw.WeaponCollisionEnterEvent.AddListener(HitTarget);
        BackClaw.WeaponCollisionEnterEvent.AddListener(HitTarget);
        BurstPrefab = Resources.Load("Prefabs/AoE/DemonGroundBurst") as GameObject;
        FlamePrefab = Resources.Load("Prefabs/AoE/DemonFlameBreath") as GameObject;
    }
Beispiel #15
0
    IEnumerator LoadPokemonSkillPools()
    {
        using (WWW www = new WWW(WWW_STREAM_ASSET_PATH + "/pokemonskillpools"))

        {
            yield return(www);

            string[] names = www.assetBundle.GetAllAssetNames();
            foreach (string name in names)
            {
                AssetBundleRequest request = www.assetBundle.LoadAssetAsync <SkillPool>(name);
                yield return(request);

                SkillPool skillPool = request.asset as SkillPool;
                if (null != skillPool)
                {
                    PokemonSkillPoolDic[skillPool.PokemonID] = skillPool;
                }
            }
            DebugHelper.Log("技能池数据已加载");
            LOADSKILLPOOL = true;
            AssetBundle.UnloadAllAssetBundles(false);
        }
    }
Beispiel #16
0
    /// <summary>
    /// picks an action based on cooldowns of skills
    /// </summary>
    protected virtual void pickAction()
    {
        inAction    = false;
        queuedSkill = Skill.Default;
        chaseTimer  = 2;
        // List<Skill> randomizedPool = SkillPool.OrderByDescending(s => s.Cooldown).ToList();
        List <Skill> randomizedPool = SkillPool.OrderBy(i => System.Guid.NewGuid()).ToList();

        for (int i = 0; i < SkillPool.Count; i++)
        {
            if (SkillCooldowns[SkillPool.IndexOf(randomizedPool[i])] <= 0)
            {
                if (SkillPool[SkillPool.IndexOf(randomizedPool[i])].TargetAlly && ClosestAlly != null || !SkillPool[SkillPool.IndexOf(randomizedPool[i])].TargetAlly && ClosestEnemy != null)
                {
                    //queue for action based on skill selected
                    QueueSkill(SkillPool[SkillPool.IndexOf(randomizedPool[i])]);
                    //picks a target
                    GameObject target;
                    if (queuedSkill.TargetAlly)
                    {
                        target = ClosestAlly;
                    }
                    else
                    {
                        target = ClosestEnemy;
                    }
                    //start tracking target
                    SetTrackedUnit(target);

                    SkillCooldowns[SkillPool.IndexOf(randomizedPool[i])] = SkillPool[SkillPool.IndexOf(randomizedPool[i])].Cooldown * CooldownMultiplier;
                    break;
                }
            }
        }
        //if (SkillPool.Count > 0&&SkillCooldowns.Count>0)
        //{
        //    bool pickedSkill = false;
        //    while (!pickedSkill)
        //    {
        //        int index = Random.Range(0, SkillPool.Count - 1);
        //        if (SkillCooldowns[index] <= 0)
        //        {
        //            if (SkillPool[index].TargetAlly && ClosestAlly != null || !SkillPool[index].TargetAlly && ClosestEnemy != null)
        //            {
        //                //queue for action based on skill selected
        //                QueueSkill(SkillPool[index]);
        //                //picks a target
        //                GameObject target;
        //                if (queuedSkill.TargetAlly)
        //                    target = ClosestAlly;
        //                else
        //                    target = ClosestEnemy;
        //                //start tracking target
        //                SetTrackedUnit(target);

        //                SkillCooldowns[index] = SkillPool[index].Cooldown * CooldownMultiplier;

        //            }
        //            pickedSkill = true;
        //        }

        //    }
        //}
    }