public void RemoveBuff(BaseBuff buff) { BaseBuff temp = buff; Destroy(temp.gameObject); buffs.Remove(temp); }
public GumpBuff(NubiaPlayer _owner) : base(50, 50) { m_owner = _owner; Closable = false; int largeur = 300; int hauteur = 150; int _x = 50; int _y = 50; int y = 75 + _y; int colonne = 0; int scaley = 48; AddImage(_x + 45, _y + 2, 0x2C7E, 94); for (int i = 0; i < m_owner.BuffList.Count; i++) { BaseBuff buff = m_owner.BuffList[i] as BaseBuff; //AddImage( _x-50, y+(colonne*scaley), buff.Icone ); AddButton(_x + 55 + (colonne * scaley), _y, buff.Icone, buff.Icone, 50 + i, GumpButtonType.Reply, 0); colonne++; } //AddImage( _x+40,_y, 0x7580, 94 ); }
public virtual void EffectOnActor(BaseActorObj targetActor, Collider2D TargetCollider) { m_AttackDict.Add(targetActor, 1); Vector3 effectPs = CountHurtPs(m_ActorObj.SkillHurtBox, TargetCollider); GenEffect(effectPs); SetCutMeet(targetActor); //产生伤害 float moveDir = 1; if ((targetActor.transform.position.x - m_ActorObj.transform.position.x) < 0) { moveDir *= -1; } BaseBuff buff = null; switch (m_SkillInfo.HitType) { case HitEffectType.ClickFly: buff = new HitFlyBuff(this.m_SkillInfo, moveDir, this.m_ActorObj); break; default: buff = new HitBuff(this.m_SkillInfo, moveDir, this.m_ActorObj); break; } buff.AddToActor(targetActor); this.SetHardTime(this.m_SkillInfo.AttackHardTime); }
public void AddBuff(GameObject buffObj, Role caster) { bool exist = false; BaseBuff buff = buffObj.GetComponent <BaseBuff>(); buff.caster = caster; foreach (BaseBuff baseBuff in buffs) { if (baseBuff.buffName == buff.buffName && !buff.canDuplicate) { exist = true; baseBuff.duration = buff.duration; baseBuff.value = buff.value; baseBuff.factor = buff.factor; baseBuff.RenewBuff(); Destroy(buffObj); break; } } if (!exist) { buffObj.transform.SetParent(this.transform); buffObj.transform.position = this.transform.position; buff.notifyBuffRemoved += OnBuffDestory; buffs.Add(buff); } }
public void AddBuff(GameObject buffPrafab, Role caster) { bool exist = false; BaseBuff buff = buffPrafab.GetComponent <BaseBuff>(); Vector3 scale = buffPrafab.transform.localScale; buff.fromRoleId = caster.GetInstanceID(); buff.SetCaster(caster); foreach (BaseBuff baseBuff in GetBuffs()) { if (baseBuff.buffName == buff.buffName && baseBuff.fromRoleId == caster.GetInstanceID()) { buff.order = baseBuff.order; exist = true; ReplaceBuff(baseBuff, buffPrafab); } } if (!exist) { buffPrafab.transform.SetParent(this.transform); buffPrafab.transform.position = this.transform.position; buff.order = buffs.Count; buffs.Add(buffPrafab); } correctBuffPosition(buffPrafab); buffPrafab.transform.localScale = scale; }
public void AddBuff(BaseBuff buff) { bool hasSameBuff = false; int index = -1; //遍历buff列表寻找是否已有相同类型的buff for (int i = 0; i < buffList.Count; i++) { if (buffList[i].buffType == buff.buffType) { hasSameBuff = true; index = i; break; } } //如果没有相同buff,就添加 if (!hasSameBuff) { buffList.Add(buff); buff.OnAdd(); } //如果有了,重置已有的buff else { buffList[index].OnInit(); } }
/// <summary> /// 移除Buff /// </summary> /// <param name="buf"></param> public void RemoveBuff(BaseBuff buf) { ShowType curType = buf.BuffShowType; if (!m_mountDict.ContainsKey(curType)) { Debug.Log("Dict缺少key=" + curType); return; } if (!m_mountDict[curType].ContainsKey(buf.OnlyID)) { Debug.Log("Buff->" + buf.OnlyID + "不存在"); return; } m_mountDict[curType].Remove(buf.OnlyID); if (buf.Check(1)) { OnPreAttackFunc -= buf.OnPreAttack; } if (buf.Check(2)) { OnNextAttackFunc -= buf.OnNextAttack; } if (buf.Check(3)) { OnPreHurtFunc -= buf.OnPreHurted; } if (buf.Check(4)) { OnNextHurtFunc -= buf.OnNextHurted; } buf.Remove(); }
void OnAttackSucc(FighterEvent e) { BaseBuff buff = BuffFactory.GetBuffByID(BuffID, skillLevel); card.attacker.AddBuff(buff); card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card))); }
public void AddBuff(BaseBuff.BuffType type, float time, float val) { for (int i = 0; i < buffList.Count; i++) { if (buffList[i].GetBuffType() == type) { buffList[i].Reset(time, val); return; } } BaseBuff buff = null; switch (type) { case BaseBuff.BuffType.speed: buff = new BuffSpeed(); break; default: Debug.LogError("no buff :" + type); break; } buff.Init(type, time, val); addList.Add(buff); }
//同id的buff不能叠加,只能覆盖 public bool AddBuff(Creature target, BuffId id) { BaseBuff newBuff = null; switch (id) { case BuffId.Invincible: newBuff = new InvincibleBuff(); break; } if (newBuff != null) { if (buffDict.ContainsKey(id)) { //移除原来的buff if (buffDict[id] != null) { buffDict[id].Stop(); } buffDict[id] = newBuff; } else { buffDict.Add(id, newBuff); } newBuff.Start(target); } return(true); }
public override void activateAbility(CardDetails details) { GameObject buffGO = Instantiate(abilityPrefab, details.character.transform); BaseBuff buff = buffGO.GetComponent <BaseBuff>(); buff.createBuff(details.character, details.character); }
public void AddBuff(BaseBuff buff) { // Adding the buff to the list Buffs.AllBuffs.Add(buff); // Firing OnAdded for that buff buff.OnAdded(Minion); }
public BaseBuff AddBuff(BaseBuff buff) { BaseBuff temp = Instantiate(buff, this.transform); buffs.Add(temp); temp.Activate(this); return(temp); }
public static Dictionary <BuffCode, BaseBuff> GetBuffInfoDict() { MySqlConnection conn = Connect(); Dictionary <BuffCode, BaseBuff> BuffInfoDict = new Dictionary <BuffCode, BaseBuff>(); MySqlDataReader reader = null; try { MySqlCommand cmd = new MySqlCommand("select * from buff", conn); reader = cmd.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { int buff_id = reader.GetInt32("buff_id"); string buff_name = reader.GetString("buff_name"); string buff_ename = reader.GetString("buff_ename"); string element_type = reader.GetString("element_type"); string dispel = reader.GetString("dispel"); string type = reader.GetString("type"); string flag = reader.GetString("flag"); float v1 = reader.GetFloat("v1"); float v2 = reader.GetFloat("v2"); float v3 = reader.GetFloat("v3"); float v4 = reader.GetFloat("v4"); float v5 = reader.GetFloat("v5"); float v6 = reader.GetFloat("v6"); float v7 = reader.GetFloat("v7"); float v8 = reader.GetFloat("v8"); float duration = reader.GetFloat("duration"); float action_time = reader.GetFloat("action_time"); int max_tier = reader.GetInt32("max_tier"); BaseBuff buff = new BaseBuff(buff_id, buff_name, (BuffCode)Enum.Parse(typeof(BuffCode), buff_ename), (ElementType)Enum.Parse(typeof(ElementType), element_type), (BuffDispelType)Enum.Parse(typeof(BuffDispelType), dispel), (BuffType)Enum.Parse(typeof(BuffType), type), (BuffFlag)Enum.Parse(typeof(BuffFlag), flag), v1, v2, v3, v4, v5, v6, v7, v8, duration, action_time, max_tier); BuffInfoDict.Add((BuffCode)Enum.Parse(typeof(BuffCode), buff_ename), buff); } } } catch (Exception e) { Console.WriteLine("在GetBuffInfoDict的时候出现异常:" + e); } finally { if (reader != null) { reader.Close(); } CloseConnection(conn); } return(BuffInfoDict); }
// 攻击成功后提示攻击力 void OnAttackSucc(FighterEvent e) { if (card.lastAttackValue > 0) { card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card))); BaseBuff buff = BuffFactory.GetBuffByID(BuffID, skillLevel); card.target.AddBuff(buff); } }
public void SlowDown(BaseBuff buff) { if (!isSlowDown) { moveSpeed -= buff.buffValue; shitGo.SetActive(true); } isSlowDown = true; }
private void ReplaceBuff(BaseBuff baseBuff, GameObject buffPrafab) { GameObject oldBuff = baseBuff.transform.gameObject; buffPrafab.transform.position = oldBuff.transform.position; buffPrafab.transform.SetParent(oldBuff.transform.parent); buffs[baseBuff.order] = buffPrafab; Destroy(oldBuff); }
public void Respawn(BaseBuff buff) { if (buff.KindType == BuffKind) { buff.Despawned(); Buffs.Push(buff); CurCount++; } }
/// <summary> /// 添加一个buff /// </summary> public void AddBuff(BaseBuff buff) { if (!buff.SuperPositon && HasBuff(buff.ID)) { return; } buff.AddBuff(this); buffs.Add(buff); }
public void Respawn(BaseBuff buff) { if (BuffPools.ContainsKey(buff.KindType)) { BuffPools[buff.KindType].Respawn(buff); } else { TinyLogger.Instance.DebugLog("$ can not respawn skill"); } }
public void AddBuff(BaseBuff buff) { // Adding the buff to the list Buffs.AllBuffs.Add(buff); // Firing OnAdded for that buff buff.OnAdded(this); // Updating controller numbers Controller.UpdateNumbers(); }
public Buff(BaseBuff b) { BuffName = b.BuffName; BuffIcon = b.BuffIcon; SkillIcon = b.SkillIcon; BuffCategory = b.BuffCategory; Description = b.Description; RoomType = ArknightUtil.GetRoom(b.BuffIcon); Phase = b.Phase; Lvl = b.Lvl; }
public virtual void AddToActor(BaseActorObj Actor) { BaseBuff curBuff = Actor.GetBuffByType(BuffType.Hit); if (curBuff != null) { curBuff.RemoveSelf(); } m_Actor = Actor; Actor.AddBuff(this); }
public void RemoveBuff(BaseBuff buff) { // Checking if the minion has the buff if (Buffs.AllBuffs.Contains(buff)) { // Removing the buff from the list Buffs.AllBuffs.Remove(buff); // Firing OnRemoved for that buff buff.OnRemoved(Minion); } }
protected override void _DoSkill(BaseFighter target) { // 卡牌存在,攻击卡牌 target.OnSkillHurt(this, damage); // 判定成功增加Buff if (target.canDoSkill && BuffID > 0 && !target.IsDead && Random.Range(0, 100) < rate) { BaseBuff buff = BuffFactory.GetBuffByID(BuffID, skillLevel); (target as CardFighter).AddBuff(buff); } }
public HitAction(BaseActorObj baseActorObj, SkillInfo skillInfo) : base(baseActorObj, skillInfo) { SetFaceLock(true); BaseBuff baseBuff = baseActorObj.GetBuffByType(BuffType.Hit); m_HitBuff = baseBuff == null? new HitBuff(): baseBuff as HitBuff; float hardTime = m_HitBuff.hardTime; SetHardTime(hardTime); m_ActorObj.Physic.SetSpeed(Vector2.right * m_HitBuff.addSpeed); m_ActorObj.ActionCtrl.AnimSpeed = 0; }
public void RemoveBuff(BaseBuff buff) { // Checking if the minion has the buff if (Buffs.AllBuffs.Contains(buff)) { // Removing the buff from the list Buffs.AllBuffs.Remove(buff); // Firing OnRemoved for that buff buff.OnRemoved(this); // Updating controller numbers Controller.UpdateNumbers(); } }
public virtual void ApplyBuffsToRole(List <SkillAttachedBuff> buffDefs, Role role) { foreach (SkillAttachedBuff buffDef in buffDefs) { GameObject buffObj = Instantiate(buffDef.buffObj); if (buffDef.overrideExisting) { BaseBuff baseBuff = buffObj.GetComponent <BaseBuff>(); baseBuff.duration = buffDef.duration; baseBuff.frequency = buffDef.frequency; baseBuff.value = buffDef.value; baseBuff.factor = buffDef.factor; } role.AddBuff(buffObj, owner.GetComponent <Role>()); } }
//计算角色数值 private FightHero SetFightHeroInfoByBuff(FightHero fightHero) { fightHero.OrgFightHeroInfo(); List <BuffCode> buffDictIndex = new List <BuffCode>(); buffDictIndex.AddRange(fightHero.BuffDict.Keys); foreach (BuffCode key in buffDictIndex) { if (fightHero.BuffDict.ContainsKey(key)) { BaseBuff buff = fightHero.BuffDict[key]; buff.MoreAssistEffect(fightHero); } } return(fightHero); }
/// <summary> /// 将所有非空buff加入对应角色上 /// </summary> /// <param name="source">buff发起者</param> /// <param name="target">buff承受者</param> /// <param name="buff1">buff数据</param> /// <param name="buffcode">buff码</param> /// <param name="tier">层数</param> /// <param name="buff_target">对敌、对己</param> public void SetCardEffectBuff(FightHero source, FightHero target, BaseBuff buffdata, int tier, BuffTarget buff_target) { if (buffdata.Buff_Ename != BuffCode.None) { Assembly assembly = Assembly.GetExecutingAssembly(); //参数列表,对应buff的构造函数 object[] parameters = new object[1]; parameters[0] = buffdata; object obj = assembly.CreateInstance("GameServer.Buff.Buff_" + buffdata.Buff_Id.ToString(), true, System.Reflection.BindingFlags.Default, null, parameters, null, null); //BaseBuff buff =new BaseBuff(obj as BaseBuff); BaseBuff buff = obj as BaseBuff; buff.Tier = tier; buff.Damage_Type = DamageType.Element; buff.BuffSource = source; buff.fightRoom = this; if (buff_target == BuffTarget.Self) { if (source.IsInmmune == true && buff.Buff_Type == BuffType.NegativeState) { return; } if (source.BuffDict.ContainsKey(buff.Buff_Ename)) { source.BuffDict[buff.Buff_Ename].AddBuffRule(tier); } else { source.BuffDict.Add(buff.Buff_Ename, buff); } } if (buff_target == BuffTarget.Other) { if (target.IsInmmune == true && buff.Buff_Type == BuffType.NegativeState) { return; } if (target.BuffDict.ContainsKey(buff.Buff_Ename)) { target.BuffDict[buff.Buff_Ename].AddBuffRule(tier); } else { target.BuffDict.Add(buff.Buff_Ename, buff); } } } }