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; }
// 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"); }
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); }
protected override void EnrageRoar() { inAction = true; animator.Play("VariantEnrage"); //add enraged skills to skillpool SkillPool.Add(Skill.HellHoundVariantLeap); SkillCooldowns.Add(0); }
public void GivenEmptyConstructor_ThenSkillPoolInitializedCorrectly() { // arrange & act var results = new SkillPool(); // assert Assert.IsNotNull(results[SkillType.UnarmedCombat]); // todo: the rest of the skills }
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); }
public void GivenSkillPresent_SetAndReturnValue() { // arrange var actual = new SkillPool(); // act actual[SkillType.UnarmedCombat] = 12; var results = actual[SkillType.UnarmedCombat]; // assert Assert.AreEqual(12, results); }
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); } }
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")); }
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); } }
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; }
// 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); }
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; }
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); } }
/// <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; // } // } //} }