Пример #1
0
    //生效效果
    public void cast()
    {
        //		this.player.addAction (new SkillAction("C603");
        Dictionary <string, object> data = this._data;

        if (data.ContainsKey("part"))
        {
            player.partGroup.addPart((Dictionary <string, object>)data["part"]);
        }

        if (data.ContainsKey("magic"))
        {
            MagicSkillAction action = (MagicSkillAction) new MagicSkillAction(this.player.map).init((Dictionary <string, object>)data["magic"], this.player);
            action.cardId = this.id;
            this.player.addAction(action);
        }
    }
Пример #2
0
    public override void setData(Dictionary <string, object> data)
    {
        this._seekRange = (GeomBase)this._map.getNetObject((int)(data["seekRange"]));
        this._lifeTime  = (TimeAction)this._map.getNetObject((int)(data["lifeTime"]));
        this._seekData  = (Dictionary <string, object>)(data["seekData"]);

        if (data.ContainsKey("seekTarget"))
        {
            this.seekTarget = (PersonEntity)this._map.getNetObject((int)(data["seekTarget"]));
        }
        this._attackRange = (GeomBase)this._map.getNetObject((int)(data["attackRange"]));
        this._attackData  = (Dictionary <string, object>)(data["attackData"]);
        if (data.ContainsKey("attackAction"))
        {
            this._attackAction = (MagicSkillAction)this._map.getNetObject((int)(data["attackAction"]));
        }
        this._fakeShape = (GeomBase)this._map.getNetObject((int)(data["fakeShape"]));
        this.index      = (int)data["index"];
        this._layer     = (int)data["layer"];
        this.offset     = Vector2D.createVector4((Dictionary <string, object>)data["offset"]);
        base.setData(data);
    }
Пример #3
0
    private void seekPlayer()
    {
        //脱离追踪范围。
        if (null != this.seekTarget && (!this.seekTarget.alived || !Collision.checkCollision(this._seekRange, this.seekTarget.shape, this._map.mapData).isHit))
        {
            this.seekTarget = null;
            Utils.clearObject(this._attackAction);
            this._attackAction = null;
        }
        //没有人的时候查询范围找敌人。
        if (null == this.seekTarget)
        {
            List <PersonEntity> players = this.map.getPerson(this._seekRange, (int)this._seekData["aim"], (int)this._seekData["sort"], false);

            if (players.Count > 0)
            {
                this.seekTarget    = players[0];
                this._attackAction = new MagicSkillAction(this._map).init((Dictionary <string, object>) this._data["attack"], this) as MagicSkillAction;
                this._attackAction.start();
            }
        }
    }