예제 #1
0
 public override void onEnter()
 {
     base.onEnter();
     if (dyAgent != null)
     {
         orgPos        = dyAgent.CacheTrans.position;
         animName      = this.getHitAnimName();
         this.exitTime = dyAgent.anim[this.animName].length + Time.timeSinceLevelLoad;
         dyAgent.anim.CrossFade(this.animName, 0.1f);
         dyAgent.anim.wrapMode = WrapMode.Once;
     }
     if (this.args != null && this.args.damageData != null)
     {
         hitDis  = this.args.damageData.hitDis;
         atkType = this.args.damageData.atkType;
         if (atkType == AttackType.hitAir)
         {
             dyAgent.setUseGrivaty(false);
             hitDis += orgPos.y;
             moveDir = Vector3.up;
         }
         if (atkType == AttackType.hitBack)
         {
             dyCaster = EntityMgr.Instance.getEntityById(this.args.damageData.casterId) as EntityDynamicActor;
             moveDir  = dyCaster.CacheTrans.forward;
         }
     }
 }
예제 #2
0
    private void openUI()
    {
        EntityDynamicActor dy = EntityMgr.Instance.getMainPlayer() as EntityDynamicActor;

        if (dy == null || dy.getSkillWidget() == null)
        {
            return;
        }
        List <int> skills = dy.getSkillWidget().getSkillInfo();

        SkillDetailData dt = new SkillDetailData();

        for (int i = 0; i < skills.Count; i++)
        {
            SkillConfigConfig conf = SkillConfigConfig.Get(skills[i]);
            if (conf != null)
            {
                SkillDetailItemData info = new SkillDetailItemData();
                info.id            = conf.tempId;
                info.skillIcon     = conf.skillIcon;
                info.skillName     = conf.skillName;
                info.skillDesc     = conf.skillDesc;
                info.skillModeType = getModeType(conf.skillModeType);
                info.atkType       = getAtkType(conf.atkType);
                info.atkRange      = conf.atkRange;
                info.horAngle      = conf.horAngle;
                info.verAngle      = conf.verAngle;
                info.skillDamage   = conf.skillDamage;
                dt.lst.Add(info);
            }
        }
        this.updateUI(dt);
    }
예제 #3
0
    //组装数据
    private void initData()
    {
        EntityDynamicActor dy = EntityMgr.Instance.getMainPlayer() as EntityDynamicActor;

        if (dy == null || dy.getSkillWidget() == null)
        {
            return;
        }
        if (dictSkillData == null)
        {
            dictSkillData = new Dictionary <int, SkillItemUIData>();
        }

        List <int>  skills = dy.getSkillWidget().getSkillInfo();
        SkillUIData dt     = new SkillUIData();

        for (int i = 0; i < skills.Count; i++)
        {
            SkillItemUIData info = getSkillData(skills[i]);
            dictSkillData.Add(info.skillID, info);
        }

        List <SkillItemUIData> lst = getComboSkills();

        for (int i = 0; i < lst.Count; i++)
        {
            dictSkillData.Add(lst[i].skillID, lst[i]);
        }
    }
예제 #4
0
 public PlayerIdleState(BaseEntity agent, StateType type) : base(agent, type)
 {
     dyAgent = this.agent as EntityDynamicActor;
     words.Add("死亡如风 常伴吾身!");
     words.Add("钟鼓馔玉不足贵,但愿长醉不复醒!钟鼓馔玉不足贵,但愿长醉不复醒!");
     words.Add("zzzzzzzzzzzz! ! !");
 }
예제 #5
0
    protected virtual void onRelease()
    {
        EntityDynamicActor dyAgent = this.agent as EntityDynamicActor;

        if (dyAgent != null)
        {
            dyAgent.onChangeState(StateType.idle);
        }
    }
예제 #6
0
    public override void onEnter()
    {
        base.onEnter();
        EntityDynamicActor dyAgent = this.agent as EntityDynamicActor;

        if (dyAgent != null)
        {
            dyAgent.anim.CrossFade("fallBack", 0.1f);
        }
    }
예제 #7
0
 public override void onEnter()
 {
     base.onEnter();
     dyAgent = this.agent as EntityDynamicActor;
     if (dyAgent != null)
     {
         dyAgent.anim.CrossFade("walk", 0.1f);
     }
     minDis = dyAgent.SonType == EntitySonType.first ? 0.3f : 2f;
 }
예제 #8
0
    public static NavgateWidget create(EntityDynamicActor agent)
    {
        NavgateWidget widget = agent.CacheObj.GetComponent <NavgateWidget>();

        if (widget == null)
        {
            widget = agent.CacheObj.AddComponent <NavgateWidget>();
        }
        widget.agent  = agent;
        widget.target = agent.CacheTrans.position;
        return(widget);
    }
예제 #9
0
    public override void onEnter()
    {
        base.onEnter();
        EntityDynamicActor dyAgent = this.agent as EntityDynamicActor;

        if (dyAgent != null)
        {
            int num = UnityEngine.Random.Range(1, 3);
            dyAgent.anim.CrossFade("hit" + num, 0.1f);
            dyAgent.onChangeColor();
        }
    }
예제 #10
0
 public override void onUpdate()
 {
     duration -= Time.deltaTime;
     if (duration < 0)
     {
         EntityDynamicActor dyAgent = this.agent as EntityDynamicActor;
         if (dyAgent != null)
         {
             dyAgent.onChangeState(StateType.idle);
         }
     }
 }
예제 #11
0
 public override void onEnter()
 {
     base.onEnter();
     if (dyAgent != null && dyAgent.Target != null)
     {
         EntityDynamicActor target = dyAgent.Target as EntityDynamicActor;
         if (target != null)
         {
             target.setUseGrivaty(false);
         }
         dyAgent.setUseGrivaty(false);
     }
 }
예제 #12
0
    public static void onSyncSkill(string msg)
    {
        //解析
        string[] msgLst  = msg.Split(',');
        int      uid     = int.Parse(msgLst[1]);
        int      skillId = int.Parse(msgLst[2]);

        EntityDynamicActor role = EntityMgr.Instance.getEntityById <EntityDynamicActor>(uid);

        if (role != null)
        {
            role.onReleaseSkill(skillId, new FSMArgs(SkillUIControl.getSkillData(skillId)));
        }
    }
예제 #13
0
 public override void onExit()
 {
     base.onExit();
     isArrive = false;
     if (dyAgent != null && dyAgent.Target != null)
     {
         dyAgent.setUseGrivaty(true);
         EntityDynamicActor target = dyAgent.Target as EntityDynamicActor;
         if (target != null)
         {
             target.setUseGrivaty(true);
         }
     }
 }
예제 #14
0
    public override void onBulletCrash(Collider col)
    {
        EntityDynamicActor atkTarget = col.GetComponent <EntityDynamicActor>();

        if (atkTarget != null && atkTarget.UID != this.bulletInfo.dyAgent.UID)
        {
            DamageData dt = new DamageData();
            dt.casterId = this.bulletInfo.dyAgent.UID;
            dt.targetId = atkTarget.UID;
            dt.atkType  = (AttackType)this.bulletInfo.atkType;
            dt.hitDis   = this.bulletInfo.hitDis;
            dt.damage   = 10;//配表
            atkTarget.onDamage(dt);

            this.bulletInfo.dyAgent.Target = atkTarget;
            this.bulletInfo.dyAgent.onChangeState(StateType.yasuoRSkill);
        }
    }
예제 #15
0
    private List <SkillItemUIData> getComboSkills()
    {
        List <SkillItemUIData> dtLst = new List <SkillItemUIData>();
        EntityDynamicActor     dy    = EntityMgr.Instance.getMainPlayer() as EntityDynamicActor;

        if (dy == null)
        {
            return(dtLst);
        }
        List <int> combos = new List <int>();

        combos.AddRange(dy.getAttr <List <int> >(Attr.comboSkills.ToString()));
        for (int i = 0; i < combos.Count; i++)
        {
            SkillItemUIData info = getSkillData(combos[i]);
            dtLst.Add(info);
        }
        return(dtLst);
    }
예제 #16
0
    public static void onSyncPos(string msg)
    {
        //解析
        string[] msgLst = msg.Split(',');
        int      uid    = int.Parse(msgLst[1]);
        int      x      = int.Parse(msgLst[2]);

        x = x / 100;
        int y = int.Parse(msgLst[3]);

        y = y / 100;
        int z = int.Parse(msgLst[4]);

        z = z / 100;

        EntityDynamicActor role = EntityMgr.Instance.getEntityById <EntityDynamicActor>(uid);

        if (role != null)
        {
            role.navgateTo(new Vector3(x, y, z));
        }
    }
예제 #17
0
    public static void createBullet(EntityDynamicActor agent, int bulletId)
    {
        BulletInfo         info = new BulletInfo();
        BulletConfigConfig dt   = BulletConfigConfig.Get(bulletId);

        if (dt == null)
        {
            return;
        }
        info.dyAgent     = agent;
        info.lifeTime    = dt.bulletLife;
        info.bulletSpeed = (float)dt.bulletSpeed;
        info.atkType     = (ATK_Type)dt.atkType;
        info.bulletType  = (BulletType)dt.bulletType;
        info.hitDis      = (float)dt.atkDistance;
        string[] strs = dt.bulletSize.Split(',');
        info.boxSize = new Vector3(float.Parse(strs[0]), float.Parse(strs[0]), float.Parse(strs[0]));
        GameObject go = new GameObject(info.dyAgent.Name + " --> bullet");
        BaseBullet BB = go.AddComponent(getBulletByType(info.bulletType)) as BaseBullet;

        BB.setBulletInfo(info);
    }
예제 #18
0
 public PlayerSpawnState(BaseEntity agent, StateType type) : base(agent, type)
 {
     dyAgent = this.agent as EntityDynamicActor;
 }
예제 #19
0
 public override void onEnter()
 {
     base.onEnter();
     dyAgent = this.agent as EntityDynamicActor;
     onAttack();
 }
예제 #20
0
 public override void onEnter(WorkingData wd)
 {
     dyAgent         = wd.dyAgent;
     nextSeekTime    = wd.seekTime + Time.timeSinceLevelLoad;
     nextPartolPoint = getPartolPoint(wd);
 }
예제 #21
0
 public PlayerDodgeState(BaseEntity agent, StateType type) : base(agent, type)
 {
     dyAgent = agent as EntityDynamicActor;
 }
예제 #22
0
 public SkillWidget(EntityDynamicActor agent, List <int> skills)
 {
     this.agent = agent;
     dictSkills = new Dictionary <int, SkillInfo>();
     init(skills);
 }