Ejemplo n.º 1
0
    public LogicEntity CreateBullet(LogicEntity releaserEntity)
    {
        AttrComponent attr   = releaserEntity.GetComponent <AttrComponent>();
        LogicEntity   result = CreateEntityByResPath("");

        result.SetLifeTime(attr.GetAttr(Attr.BulletLife));
        result.AddComponent <BulletComponent>(releaserEntity);
        LogicMove moveComp = result.AddComponent <LogicMove>();

        moveComp.AddMove(releaserEntity.LogicTran.forward, attr.GetAttr(Attr.BulletSpeed), attr.GetAttr(Attr.BulletLife), null);
        return(result);
    }
Ejemplo n.º 2
0
    public override bool LogicTick(StateMachine machine, int ms)
    {
        AttrComponent attr = machine.HostEntity.GetComponent <AttrComponent>();

        _flagTime += ms;
        if (!_hasTriggerBullet && _flagTime > attr.GetAttr(Attr.BulletDelay))
        {
            EntityManager.Instance.CreateBullet(machine.HostEntity);
            _hasTriggerBullet = true;
            _flagTime         = 0;
        }
        return(_hasTriggerBullet && _flagTime > attr.GetAttr(Attr.AttackAfter));
    }
Ejemplo n.º 3
0
    public override bool LogicTick(StateMachine machine, int ms)
    {
        if (!_isAvaliable)
        {
            return(true);
        }
        _isAvaliable = false;
        LogicMove lm = machine.HostEntity.GetComponent <LogicMove>();

        if (lm != null)
        {
            AttrComponent attr  = machine.HostEntity.GetComponent <AttrComponent>();
            SafeFloat     speed = attr.GetAttr(Attr.MoveSpeed);
            lm.MoveOneStep(speed * new SafeV3(_args.DirX, 0, _args.DirZ));
        }

        return(false);
    }
Ejemplo n.º 4
0
    private bool TryHit(LogicEntity target)
    {
        EffectReceiver receiver = target.GetComponent <EffectReceiver>();

        if (receiver == null)
        {
            return(false);
        }
        LogicEntity releaser = EntityManager.Instance.GetEntity(this._releaserKey);

        if (releaser == null)
        {
            return(true);
        }
        AttrComponent attr = releaser.GetComponent <AttrComponent>();

        EffectData data = new EffectData();

        data.OpEntityKey = this._releaserKey;
        data.ChagneAttr  = new AttrPair[] { new AttrPair(Attr.Hp, attr.GetAttr(Attr.Attack)) };
        receiver.ReciveEffect(data);
        return(true);
    }
Ejemplo n.º 5
0
 public override void Init()
 {
     _attrAgent = HostEntity.GetComponent <AttrComponent>();
 }