示例#1
0
    override public bool Init(ObjectInitParam param)
    {
        PlayerInitParam plyParam = (PlayerInitParam)param;

        if (!DataManager.PlayerTable.ContainsKey(plyParam.player_data.resId))
        {
            return(false);
        }
        mRes         = DataManager.PlayerTable[plyParam.player_data.resId] as PlayerTableItem;
        mModelResID  = mRes.model;
        mUseWeaponID = plyParam.player_data.main_weaponId;

        if (!base.Init(param))
        {
            return(false);
        }

        mLevel = plyParam.player_data.level;

        ApplyProperty(plyParam.init_property);

        mHeadNode = PlayerHeadUIManager.Instance.CreatePlayerHeadUI();
        mHeadNode.SetName(GetName());
        mHeadNode.SetTitle(GetTitleImg());
        mHeadNode.Show();
        SetLeague(LeagueDef.Red);
        return(true);
    }
示例#2
0
    override public bool Init(ObjectInitParam param)
    {
        PickInitParam pickParam = (PickInitParam)param;

        if (!DataManager.PickTable.ContainsKey(pickParam.pick_res_id))
        {
            GameDebug.LogError("pick表中不存在ID: " + pickParam.pick_res_id);
            return(false);
        }

        mRes        = DataManager.PickTable[pickParam.pick_res_id] as PickTableItem;
        mModelResID = mRes.modelId;
        mContent    = pickParam.content;
        mPickType   = pickParam.pick_type;
        mFlyType    = pickParam.fly_type;
        mRandomPos  = pickParam.random_pos;

        if (!base.Init(param))
        {
            return(false);
        }

        InitProperty();

        return(true);
    }
示例#3
0
    override public bool Init(ObjectInitParam param)
    {
        if (!base.Init(param))
        {
            return(false);
        }

        mHomePosition.x = mPosition.x;
        mHomePosition.y = mPosition.y;
        mHomePosition.z = mPosition.z;

        mProperty = new RoleProperty();

        mActionCenter         = new BattleUnitActionCenter(this);
        mSkillContainer       = new BattleUnitSkillContainer();
        mSkillEffectManager   = new SkillEffectManager(this);
        mActiveFlagsContainer = new ActiveFlagsContainer();
        mRandEventContainer   = new BattleUnitRandEventContainer();

        mHitMaterialEffectCdContainer = new HitMaterialEffectCdContainer();

        // 默认透明度为100.
        SetBaseProperty((int)PropertyTypeEnum.PropertyTypeAlpha, 100);

        // 默认硬直抗性为100.
        SetBaseProperty((int)PropertyTypeEnum.PropertyTypeSpasticityResistance, 100);

        SetBaseProperty((int)PropertyTypeEnum.PropertyTypeScale_Rate, 100);

        return(true);
    }
示例#4
0
    override public bool Init(ObjectInitParam param)
    {
        GhostInitParam ghostParam = (GhostInitParam)param;

        mGhostData = ghostParam.ghost_data;

        if (!DataManager.PlayerTable.ContainsKey(mGhostData.resId))
        {
            return(false);
        }

        mRes = DataManager.PlayerTable[mGhostData.resId] as PlayerTableItem;

        mModelResID   = mRes.model;
        mMainWeaponID = mGhostData.main_weaponId;
        mMainPlayer   = ghostParam.main_player;

        if (!base.Init(param))
        {
            return(false);
        }

        InitProperty(mGhostData);

        SetLeague(ghostParam.league);

        return(true);
    }
示例#5
0
    override public bool Init(ObjectInitParam param)
    {
        CropsInitParam cropsParam = (CropsInitParam)param;

        if (!DataManager.NPCTable.ContainsKey(cropsParam.crops_res_id))
        {
            return(false);
        }
        mRes        = DataManager.NPCTable[cropsParam.crops_res_id] as NPCTableItem;
        mModelResID = mRes.model;

        if (!base.Init(param))
        {
            return(false);
        }

        resid         = mRes.resID;
        mBattleUintAI = AIFactory.Instance.CreateAIObject(this, mRes.ai);
        if (mBattleUintAI == null)
        {
            return(false);
        }

        if (cropsParam.talk_id >= 0)
        {
            mTalkID = cropsParam.talk_id;
        }
        else
        {
            mTalkID = mRes.talkID;
        }

        if (cropsParam.league != LeagueDef.InvalidLeague)
        {
            SetLeague(cropsParam.league);
        }
        else
        {
            SetLeague(mRes.league);
        }

        mDestroyWaiting       = true;
        mMaxDisappearTime     = mRes.DisappearTime;
        mMaxWaitDisappearTime = mRes.WaitDisappearTime;

        mSummonerAttr = cropsParam.summonerAttr;

        InitProperty(cropsParam);

        if (mRes.bossHpUnit < 0 && mRes.showHp)
        {
            mBloodNode = BloodUIManager.Instance.CreateBloodUI();
        }

        GetCrySound();
        return(true);
    }
示例#6
0
    public override bool Init(ObjectInitParam param)
    {
        if (!base.Init(param))
        {
            return(false);
        }

        mBulletParam = (BulletInitParam)param;

        if ((mBulletResource = DataManager.BulletTable[mBulletParam.resID] as BulletTableItem) == null)
        {
            SkillUtilities.ResourceNotFound("bullet", mBulletParam.resID);
            return(false);
        }

        mCreateDelay = mBulletParam.createDelay;

        mFirerAttr = mBulletParam.firerAttr;

        FlySpeed = mBulletResource.flySpeed;

        StartPosition  = mBulletParam.startPosition;
        TargetPosition = mBulletParam.targetPosition;

        Vector3 dir3d = TargetPosition - StartPosition;

        dir3d.y = 0;

        if (dir3d == Vector3.zero)
        {
            // 起始点与终点位置重叠, 取开火者当前朝向.
            BattleUnit firer       = mFirerAttr.CheckedAttackerObject();
            float      alternative = (firer != null) ? firer.GetDirection() : mFirerAttr.AttackerDirection;
            dir3d = Utility.RadianToVector3(alternative);
        }

        FlyDirection = Quaternion.LookRotation(dir3d);
        SetRotation(FlyDirection);

        AccelerateDelay = mBulletResource.accelerateDelay;

        mFlyTargetSelection = new TargetSelectionTableItem()
        {
            resID     = -1,
            desc      = "bullet hit",
            leagueSel = mBulletResource.leagueSelection,
            //maxTargetCount = mBulletResource.flyThroughCount - (uint)mHitted.Count,
            shape      = ShapeType.ShapeType_Rect,
            RectLength = mBulletResource.radiusOnCollide * 2
        };

        SetPosition(StartPosition);

        return(true);
    }
示例#7
0
    override public bool Init(ObjectInitParam param)
    {
        if (!base.Init(param))
        {
            return(false);
        }

        InitModelID = -1;
        mHasShadow  = false;
        return(true);
    }
示例#8
0
    override public bool Init(ObjectInitParam param)
    {
        if (!base.Init(param))
        {
            return(false);
        }
        //RoleInitParam roleParam = (RoleInitParam)param;

        mHasShadow = true;
        return(true);
    }
示例#9
0
    override public bool Init(ObjectInitParam param)
    {
        NpcInitParam npcParam = (NpcInitParam)param;

        if (!DataManager.NPCTable.ContainsKey(npcParam.npc_res_id))
        {
            return(false);
        }
        mRes        = DataManager.NPCTable[npcParam.npc_res_id] as NPCTableItem;
        mModelResID = mRes.model;

        if (!base.Init(param))
        {
            return(false);
        }

        mBattleUintAI = AIFactory.Instance.CreateAIObject(this, mRes.ai);
        if (mBattleUintAI == null)
        {
            return(false);
        }

        if (npcParam.talk_id >= 0)
        {
            mTalkID = npcParam.talk_id;
        }
        else
        {
            mTalkID = mRes.talkID;
        }

        InitTalk();

        SetLeague(mRes.league);

        mDestroyWaiting       = true;
        mMaxDisappearTime     = mRes.DisappearTime;
        mMaxWaitDisappearTime = mRes.WaitDisappearTime;

        mLifeTime = npcParam.lifeTime;

        mSummonerAttr = npcParam.summonerAttr;

        InitProperty();

        if (mRes.bossHpUnit < 0 && mRes.showHp)
        {
            mBloodNode = BloodUIManager.Instance.CreateBloodUI();
        }

        GetCrySound();
        return(true);
    }
示例#10
0
    virtual public bool Init(ObjectInitParam param)
    {
        mInitPos = param.init_pos;
        mInitDir = param.init_dir;
        mAlias   = param.alias;

        this.SetPosition(mInitPos);
        this.SetDirection(mInitDir);

        mShapeParam = param.init_shape;

        mDestoryed = false;
        mDisappear = false;

        return(true);
    }
示例#11
0
    public override bool Init(ObjectInitParam param)
    {
        if (!base.Init(param))
        {
            return(false);
        }

        TrapInitParam trapInit = (TrapInitParam)param;

        if (!DataManager.TrapTable.ContainsKey(trapInit.trapResID))
        {
            return(false);
        }

        mTrapResource = DataManager.TrapTable[trapInit.trapResID] as TrapTableItem;
        mModelResID   = (int)mTrapResource.modelID;
        mSummonerAttr = trapInit.summonerAttr;

        // 没有召唤者.
        if (mSummonerAttr.AttackerID == uint.MaxValue)
        {
            mSummonerAttr = new AttackerAttr(this, mSummonerAttr.SkillCommonID, mSummonerAttr.StructMadeByRandEvent);
        }

        mTaskManager = new SkillUtilities.TaskManager(null);

        // 生命时间结束后, 进入倒计时死亡.
        mTaskManager.AddTask(new SkillUtilities.Task(trapInit.lifeTime, explodeCountBackwards, null));

        // 倒计时死亡之后, 再经过爆炸延迟, 开始爆炸.
        uint explodeTime = uint.MaxValue;

        // 避免累加时溢出.
        if (trapInit.lifeTime != uint.MaxValue && mTrapResource.explodeDelay != uint.MaxValue)
        {
            explodeTime = trapInit.lifeTime + mTrapResource.explodeDelay;
        }

        mTaskManager.AddTask(new SkillUtilities.Task(explodeTime, explode, null));
        mTaskManager.Start();

        return(true);
    }
示例#12
0
    override public bool Init(ObjectInitParam param)
    {
        BuildInitParam buildParam = (BuildInitParam)param;

        if (!DataManager.BuildTable.ContainsKey(buildParam.build_res_id))
        {
            return(false);
        }
        mRes = DataManager.BuildTable[buildParam.build_res_id] as BuildTableItem;

        if (mRes == null)
        {
            GameDebug.LogError("未找到buildobj id = " + buildParam.build_res_id.ToString());
            return(false);
        }

        mModelResID = mRes.modelId;
        SetLeague(mRes.league);
        mDestroyWaiting       = true;
        mMaxWaitDisappearTime = mRes.die_time;
        mMaxDisappearTime     = 0.0f;
        mBarrier = buildParam.build_barrier;

        param.init_shape       = new SceneShapeParam();
        param.init_shape.mType = mRes.shapeType;
        param.init_shape.mParams.Add(mRes.shapeParam1);
        param.init_shape.mParams.Add(mRes.shapeParam2);

        if (!base.Init(param))
        {
            return(false);
        }

        InitProperty();

        return(true);
    }