public override bool Execute(SkillArgs Args) { Master_ = Args.Master; SkillID_ = Args.Skill.SkillID; EventManager.Register <NpcSkillEvent>(OnNpcSkillEvent); return(true); }
public override bool Execute(SkillArgs Args) { var Master = Args.Master; if (Master == null) { return(false); } var TargetList = FilterHelper.Find(Args.LockRule, new FilterArgs() { Master = Master, Team = Master.Team, Position = Master.Position, Radius = Args.Skill.Radius, Rotation = Master.Rotation, Shape = Args.Skill.Shape }); foreach (var Target in TargetList) { if (!Target.IsValid()) { continue; } var Damage = CombatManager.Calculator.Calc(Master.CalcFinalAttr(NpcAttrIndex.Damage), 1); Target.OnHitDamage(Master, Args.Skill.Name, Damage); Target.TryToPlayHitSfx(Args.HitSfx); } return(true); }
public override bool Execute(SkillArgs Args) { var Master = Args.Master; if (Master == null) { return(false); } var TargetList = FilterHelper.Find(Args.LockRule, new FilterArgs() { Master = Master, Team = Master.Team, Position = Master.Position, Radius = Args.Skill.Radius, Rotation = Master.Rotation, Shape = Args.Skill.Shape }); if (TargetList.Count > 0) { var Damage = CombatManager.Calculator.Calc(Master.CalcFinalAttr(NpcAttrIndex.Damage), 1); BulletManager.AddArrowBullet( new ArrowBulletDescriptor( new BaseBulletDescriptor(Args.Skill.Name, Args.Master.Position, Args.Master.Team, Damage), TargetList[0].Position, 1000, new Color(0.5f, 0.3f, 0.4f))); } return(false); }
public override bool CheckChangeState_Prot(StateMachine machine, StateArgsBase args) { SkillArgs skillArgs = args as SkillArgs; //todo: 眩晕状态等等状态下禁止释放技能 return(true); }
public bool StopCurrentSkill() { if (currentSkill != null) { PlayAction("Idle"); currentSkill.OnStop(currentSkillArgs); currentSkill = null; currentSkillArgs = null; // if (Target != null) { if (Target.IsDead) { // 发送,杀死对方,继续下一回合 GameEventManager.RaiseEvent(GameEventTypes.KillChess, this, Target); } else { Target.UseNormalSkill(); } } } return(true); }
public override bool Execute(SkillArgs Args) { var Master = Args.Master; if (Master == null) { return(false); } var TargetList = FilterHelper.Find(Args.LockRule, new FilterArgs() { Master = Master, Team = Master.Team, Position = Master.Position, Radius = Args.Skill.Radius, Rotation = Master.Rotation, Shape = Args.Skill.Shape }); foreach (var Target in TargetList) { if (!Target.IsValid()) { continue; } Target.Action.SetTarget(Master); } return(true); }
protected ChessEntity GetTarget(SkillArgs args, string targetStr = "") { if (string.IsNullOrEmpty(targetStr)) { targetStr = GetProp("Target"); } if (string.IsNullOrEmpty(targetStr)) { return(args.Owner); } targetStr = targetStr.ToLower(); switch (targetStr) { case "owner": return(args.Owner); case "sender": return(args.Sender); case "target": return(args.Owner.Target); } return(args.Owner); }
public SkillIconItem(Transform Parent, BaseSkill Skill, RectTransform CancelObj, bool IsRect /*temp*/) { this.Skill = Skill; IconTransform = AssetManager.CreatePrefabSync(new AssetUri(IsRect ? "prefabs/skillicon.prefab" : "prefabs/newskillIcon.prefab")).transform; IconTransform.SetParent(Parent, false); UIHelper.GetComponent <Image>(IconTransform, "BG/Icon").sprite = AssetManager.CreateAssetSync <Sprite>(new AssetUri(Skill.Icon)); UIHelper.GetComponent <Image>(IconTransform, "BG/Mask").sprite = AssetManager.CreateAssetSync <Sprite>(new AssetUri(Skill.Icon)); Mask_ = IconTransform.Find("BG/Mask").GetComponent <Image>(); Mask_.fillAmount = 1; CDText_ = IconTransform.Find("CD").GetComponent <Text>(); CDText_.gameObject.SetActive(false); NameText_ = IconTransform.Find("Name").GetComponent <Text>(); NameText_.text = Skill.Name; Selector_ = SkillLibrary.Get(Skill.SkillID).Selector.Clone(); var Args = new SkillArgs(Skill) { CancelObj = CancelObj }; Selector_.BindCarrier(IconTransform, Args, (SArgs) => { Skill.Master.Skill.UseSkill(SArgs); }); }
public override bool OnEntry(SkillArgs args) { if (!base.OnEntry(args)) { return(false); } ChessEntity attack = GetTarget(args, damageTarget); ChessEntity beAttack = GetTarget(args, beDamageTarget); if (attack == null || beAttack == null) { return(false); } int damage = (int)attack.chessObj.chess_attack; damage -= (int)beAttack.chessObj.chess_defense; if (damage <= 0) { damage = 1; } beAttack.BeAttack(damage); return(true); }
public override bool Execute(SkillArgs Args) { BuffManager.AddBuff(new TriggerBuff(new TriggerBuffDescriptor(Args.Skill.Name, 5, 0.5f, 0, true, new NpcAttrModifyInfo(NpcAttrIndex.Speed, 0.5f, 0), Args.Skill.Radius, 1), Args.Position, Args.Master.Team.Opposite())); return(true); }
protected bool RunningChild(SkillArgs args, int index) { if (childList == null || childList.Count <= index) { return(false); } return(childList[index].OnEntry(args)); }
public override bool Execute(SkillArgs Args) { Master_ = Args.Master; SkillID_ = Args.Skill.SkillID; var Level = Master_.Skill.GetSkillLevel(SkillID_); Master_.Data.Attr.ApplyBase(NpcAttrIndex.AddMp, Level * 10); return(true); }
public override bool Execute(SkillArgs Args) { var BulletDesc = new BombBulletDescriptor( new BaseBulletDescriptor(Args.Skill.Name, new Vector2(Args.Position.x, 400), CombatTeam.A, 500), Args.Position, 200, Args.Skill.Radius); BulletManager.AddBombBullet(BulletDesc); return(true); }
public virtual bool OnEntry(SkillArgs args) { if (args == null) { return(false); } return(true); }
public override bool Execute(SkillArgs Args) { var BulletDesc = new LaserBulletDescriptor( new BaseBulletDescriptor(Args.Skill.Name, Configure.CoreTopPosition, CombatTeam.A, 100), 180, 360, 300, 500); BulletManager.AddLaserBullet(BulletDesc); return(true); }
public bool OnFinish(SkillArgs args) { if (args.Owner != null) { args.Owner.StopCurrentSkill(); } return(true); }
public override bool Execute(SkillArgs Args) { var Offset = MathHelper.RandVec2(100); var Npc = NpcManager.AddNpc(Args.Skill.Name, Configure.CoreBasePosition + Offset, CombatTeam.A, 2, NpcManager.GenerateInitAttr(200, 200, 0, 100, 10, 2, 0, 500, 30)); Npc.Skill.AddNpcSkill(2011); // 箭雨-主动 return(true); }
public override bool OnLeave(SkillArgs args) { if (!base.OnLeave(args)) { return(false); } TimerManager.Instance.RemoveTimer(string.Format("FlowTime_{0}", args.Index)); return(true); }
protected bool RunningChild(SkillArgs args, string childName, int index = 0) { SkillBase combat = FindChild(childName, index); if (combat == null) { return(false); } return(combat.OnEntry(args)); }
private void OnCombatFlowCallBack(object[] arg1) { SkillArgs args = (SkillArgs)arg1[0]; if (args.FlowIndex < 0 || args.FlowIndex >= childList.Count) { return; } childList[args.FlowIndex].OnEntry(args); }
public override bool Execute(SkillArgs Args) { var BulletDesc = new BackBulletDescriptor( new BaseBulletDescriptor(Args.Skill.Name, Args.Master.Position, CombatTeam.A, 1), Args.Direction, Configure.WindowWidth, new Vector2(400, 82), 200); BulletManager.AddBackBullet(BulletDesc); return(true); }
public virtual bool OnStop(SkillArgs args) { if (args == null) { return(false); } OnLeave(args); return(true); }
protected bool RunningChild(SkillArgs args) { for (int idx = 0; idx < childList.Count; idx++) { if (!childList[idx].OnEntry(args)) { return(false); } } return(true); }
public void BindCarrier(Transform Carrier, SkillArgs Args, Action <SkillArgs> OnUsed) { if (Carrier_ != null) { Dispose(); } Carrier_ = Carrier; Args_ = Args; OnUsed_ = OnUsed; OnBindCarrier(); }
public override bool OnStop(SkillArgs args) { if (!base.OnStop(args)) { return(false); } TimerManager.Instance.RemoveTimer(string.Format("CombatFlow_{0}", args.Index)); childList[args.FlowIndex].OnStop(args); return(true); }
public override bool Execute(SkillArgs Args) { var Offset = MathHelper.RandVec2(100); var Npc = NpcManager.AddNpc(Args.Skill.Name, Configure.CoreBasePosition + Offset, CombatTeam.A, 2, NpcManager.GenerateInitAttr(200, 200, 0, 100, 10, 10, 0, 30, 30)); Npc.Skill.AddNpcSkill(2006); // 减速陷阱-主动 Npc.Skill.AddNpcSkill(2009); // 嘲讽-主动 Npc.Skill.AddNpcSkill(2010); // 分身-主动 Npc.Skill.AddPassiveSkill(3001, -1); // 荆棘-被动 return(true); }
public override bool OnEntry(SkillArgs args) { if (!base.OnEntry(args)) { return(false); } if (!string.IsNullOrEmpty(m_action_name)) { args.Owner.PlayAction(m_action_name); } return(true); }
public override bool Execute(SkillArgs Args) { var Master = Args.Master; if (Master == null) { return(false); } var Slave = NpcManager.AddNpc($"{Master.Name}_clone", Master.Position + MathHelper.RandVec2(100), Master.Team, Master.Scale.x, Master.Data.Attr.GetValues()); Slave.Actor.SetDirection(Master.Actor.Direction); return(true); }
public override bool OnEntry(SkillArgs args) { if (!base.OnEntry(args)) { return(false); } for (int idx = 0; idx < childList.Count; idx++) { childList[idx].OnEntry(args); } return(true); }
public override bool OnEntry(SkillArgs args) { if (!base.OnEntry(args)) { return(false); } RunningChild(args, "StartPut"); // 2、开定时器 TimerManager.Instance.AddOnceTimer(string.Format("FlowTime_{0}", args.Index), m_time_list[0], OnTimerCallback, args, 0); return(true); }