Esempio n. 1
0
    public GameObject SpawnGroup(List <GameObject> bList, BatteryConfigInfo info, Transform hole, int level = 1)
    {
        GameObject go = SpawnBattery(info, hole, level);

        go.GetComponent <BatteryParent>().holeListForGroupBattery = bList;
        return(go);
    }
Esempio n. 2
0
    public virtual GameObject InstanceManagerBatteryObj(BatteryConfigInfo info, Transform parent, int level = 1)
    {
        Object obj = Resources.Load(info.battleType + "Lv" + level);

        if (obj != null)
        {
            GameObject tempGO = Instantiate(obj) as GameObject;
            tempGO.transform.parent = parent;
            //tempGO.transform.localScale = Vector3.one;
            tempGO.transform.localPosition = Vector3.zero;
            BatteryParent bp = tempGO.GetComponent <BatteryParent>();
            bp.batteryName          = info.batteryName;
            bp.attackValue          = info.attackValue;
            bp.attackRepeatRateTime = info.attackRepeatRateTime;
            bp.blood             = info.blood;
            bp.desc              = info.desc;
            bp.icon              = info.icon;
            bp.maxAttackDistance = info.maxAttackDistance;
            bp.model             = info.model;
            bp.MW         = info.MW;
            bp.battleType = info.battleType;
            bp.starLevel  = info.starLevel;
            bp.wood       = info.wood;

            Vector3 vv = Vector3.zero;
            vv.y = tempGO.transform.position.y;
            tempGO.transform.LookAt(vv);
            tempGO.transform.Rotate(Vector3.up, 180);

            return(tempGO);
        }
        return(null);
    }
Esempio n. 3
0
    void PlaceBattery(GameObject go, object param)
    {
        BatteryConfigInfo info = (BatteryConfigInfo)param;

        humScript.StartSpawnBattery(info, humScript.currentHitHoleObj);
        CloseThisPanel();
    }
Esempio n. 4
0
 public void StartSpawnBattery(BatteryConfigInfo info, Transform hole)
 {
     PlayBuildOverAnima(hole);
     tempInfo = info;
     tempHole = hole;
     Invoke("buildOVerPlaceBattery", 2f);
 }
Esempio n. 5
0
    void PlaceBattery(BatteryConfigInfo info, Transform hole)
    {
        if (hole != null && info != null)
        {
            currentBatteryObj = recoverBatteryDataBase.SpawnBattery(info, hole);

            //currentBatteryObj = hole.GetChild(2).gameObject;
            ChangeHighLight();
        }
    }
Esempio n. 6
0
    public override GameObject InstanceManagerBatteryObj(BatteryConfigInfo info, Transform parent, int level = 1)
    {
        GameObject go       = base.InstanceManagerBatteryObj(info, parent, level);
        Animator   animator = go.GetComponent <Animator>();

        if (animator != null)
        {
            animator.SetTrigger("batteryBX");
        }
        return(go);
    }
Esempio n. 7
0
    void SpawnCell(List <BatteryConfigInfo> infoList)
    {
        for (int i = 0; i < infoList.Count; i++)
        {
            GameObject go = Instantiate(BatteryCell);
            go.transform.SetParent(cellParent.transform);
            go.transform.localScale = Vector3.one;
            BatteryConfigInfo info        = infoList[i];
            BatteryCell       batteryCell = go.GetComponent <BatteryCell>();
            batteryCell.batteryInfo = info;

            GameObject okBtn = go.transform.GetChild(14).gameObject;
            EventTriggerListener.Get(okBtn, info).onClick = PlaceBattery;
        }
    }
Esempio n. 8
0
    public virtual GameObject SpawnBattery(BatteryConfigInfo info, Transform hole, int level = 1)
    {
        GameObject go = null;

        if (hole != null && info != null)
        {
            go = InstanceManagerBatteryObj(info, hole, level);
            if (go != null)
            {
                int index = hole.GetComponent <BuildConfig>().index;

                ServerBatteryData bd = new ServerBatteryData();
                bd.batteryLevel = level;
                bd.batteryType  = info.battleType;
                bd.index        = index;

                if (level == 1)
                {
                    hasHoleWithTypeDic[index] = info.battleType;
                    ServerDataHelper.AddSingleServerBatteryData(bd);

                    SpawnSingleRange(bd, go.transform);
                    CheckGroup();
                    CheckRange();
                }
                else
                {
                    if (level == 2)
                    {
                        go.transform.Translate(go.transform.forward * 3, Space.World);
                    }

                    SpawnSingleRange(bd, go.transform);
                    CheckRange();
                }
            }
        }
        return(go);
    }
Esempio n. 9
0
    public virtual void HandleRecoverData()
    {
        List <ServerBatteryData> serverDataList = ServerDataHelper.GetServerBatteryData();

        if (batteryHoleList != null && batteryHoleList.Count > 0)
        {
            if (serverDataList != null && serverDataList.Count > 0)
            {
                for (int i = 0; i < serverDataList.Count; i++)
                {
                    ServerBatteryData bd = serverDataList[i];
                    if (holeDic.ContainsKey(bd.index))
                    {
                        if (BatteryDataConfigTable.dic.ContainsKey(bd.batteryType))
                        {
                            BatteryConfigInfo info = BatteryDataConfigTable.dic[bd.batteryType];
                            GameObject        hole = holeDic[bd.index];
                            SpawnBattery(info, hole.transform);
                        }
                    }
                }
            }
        }
    }
    void InitData()
    {
        BatteryConfigInfo batteryInfo = new BatteryConfigInfo();

        batteryInfo.batteryName          = "加农炮";
        batteryInfo.icon                 = "UI/Battery/CannonBattery";
        batteryInfo.model                = "CannonBatteryLv1";
        batteryInfo.battleType           = BatteryType.CannonBattery;
        batteryInfo.blood                = 500;
        batteryInfo.attackValue          = 240;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 45;
        batteryInfo.starLevel            = 1;
        batteryInfo.desc                 = "一般的双重设计武器,在所有战斗中都很有效。如果不确定的话,安装这个就对了";
        batteryInfo.wood                 = 10;
        batteryInfo.MW = 80;
        cannonList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "雷克斯加农炮";
        batteryInfo.icon                 = "UI/Battery/RexCannonBattery";
        batteryInfo.model                = "RexCannonBatteryLv1";
        batteryInfo.battleType           = BatteryType.RexCannonBattery;
        batteryInfo.blood                = 1000;
        batteryInfo.attackValue          = 480;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 45;
        batteryInfo.starLevel            = 2;
        batteryInfo.desc                 = "更强力更耐用,和普通的加农炮一样容易上手";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 150;
        cannonList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "新星加农炮";
        batteryInfo.icon                 = "UI/Battery/NovaCannonBattery";
        batteryInfo.model                = "NovaCannonBatteryLv1";
        batteryInfo.battleType           = BatteryType.NovaCannonBattery;
        batteryInfo.blood                = 2000;
        batteryInfo.attackValue          = 960;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 45;
        batteryInfo.starLevel            = 3;
        batteryInfo.desc                 = "一个测试版模型。虽然没有设想中的那么厉害,但火力仍然不容小觑";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 300;
        cannonList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "加特林枪";
        batteryInfo.icon                 = "UI/Battery/GatlinGunBattery";
        batteryInfo.model                = "GatlinGunBatteryLv1";
        batteryInfo.battleType           = BatteryType.GatlinGunBattery;
        batteryInfo.blood                = 400;
        batteryInfo.attackValue          = 257;
        batteryInfo.attackRepeatRateTime = 0.05f;
        batteryInfo.maxAttackDistance    = 45;
        batteryInfo.starLevel            = 1;
        batteryInfo.desc                 = "快速连射武器,火力强大且能压制敌人,但是耐用性不高";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 150;
        gatlinGunList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "导弹";
        batteryInfo.icon                 = "UI/Battery/MissileBattery";
        batteryInfo.model                = "MissileBatteryLv1";
        batteryInfo.battleType           = BatteryType.MissileBattery;
        batteryInfo.blood                = 600;
        batteryInfo.attackValue          = 171;
        batteryInfo.attackRepeatRateTime = 5;
        batteryInfo.maxAttackDistance    = 80;
        batteryInfo.starLevel            = 1;
        batteryInfo.desc                 = "该武器射程很远,但不擅长应付快速移动的敌人";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 100;
        missileList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "雷克斯导弹";
        batteryInfo.icon                 = "UI/Battery/RexMissileBattery";
        batteryInfo.model                = "RexMissileBatteryLv1";
        batteryInfo.battleType           = BatteryType.RexMissileBattery;
        batteryInfo.blood                = 1200;
        batteryInfo.attackValue          = 423;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 80;
        batteryInfo.starLevel            = 2;
        batteryInfo.desc                 = "更耐用、更强力的发射器,可以一次性的攻击一大群人";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 200;
        missileList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "新星导弹";
        batteryInfo.icon                 = "UI/Battery/NovaMissileBattery";
        batteryInfo.model                = "NovaMissileBatteryLv1";
        batteryInfo.battleType           = BatteryType.NovaMissileBattery;
        batteryInfo.blood                = 2400;
        batteryInfo.attackValue          = 1004;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 80;
        batteryInfo.desc                 = "一个精简了尺寸的发射器,很容易带入城市而不被发现,而且威力更大";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 400;
        batteryInfo.starLevel            = 3;
        missileList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "雷克斯激光";
        batteryInfo.icon                 = "UI/Battery/RexLaserBattery";
        batteryInfo.model                = "RexLaserBatteryLv1";
        batteryInfo.battleType           = BatteryType.RexLaserBattery;
        batteryInfo.blood                = 1400;
        batteryInfo.attackValue          = 337;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 65;
        batteryInfo.starLevel            = 2;
        batteryInfo.desc                 = "穿透性极强的激光枪,研发部门仍然在继续开发3光束版本,但目前的火力已经足够强大了";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 700;
        specialList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "反击导弹B";
        batteryInfo.icon                 = "UI/Battery/CounterattackMissileBBattery";
        batteryInfo.model                = "CounterattackMissileBBatteryLv1";
        batteryInfo.battleType           = BatteryType.CounterattackMissileBBattery;
        batteryInfo.blood                = 1000;
        batteryInfo.attackValue          = 160;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 450;
        batteryInfo.starLevel            = 1;
        batteryInfo.desc                 = "城市防御的最后一道屏障,用来攻击进入城市的敌人";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 100;
        specialList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "狙击手";
        batteryInfo.icon                 = "UI/Battery/SniperBattery";
        batteryInfo.model                = "SniperBatteryLv1";
        batteryInfo.battleType           = BatteryType.SniperBattery;
        batteryInfo.blood                = 700;
        batteryInfo.attackValue          = 333;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 65;
        batteryInfo.starLevel            = 1;
        batteryInfo.desc                 = "射程很远的单发设计武器,偏爱暴击者的首选";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 200;
        specialList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "新星狙击手";
        batteryInfo.icon                 = "UI/Battery/NovaSniperBattery";
        batteryInfo.model                = "NovaSniperBatteryLv1";
        batteryInfo.battleType           = BatteryType.NovaSniperBattery;
        batteryInfo.blood                = 2800;
        batteryInfo.attackValue          = 1333;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 65;
        batteryInfo.starLevel            = 3;
        batteryInfo.desc                 = "同样的暴击能力,但是火力和射程都比以前更强,最适合用来对付单一敌人";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 800;
        specialList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "驻地(S)";
        batteryInfo.icon                 = "UI/Battery/ResidentSBattery";
        batteryInfo.model                = "ResidentSBatteryLv1";
        batteryInfo.battleType           = BatteryType.ResidentSBattery;
        batteryInfo.blood                = 800;
        batteryInfo.attackValue          = 1200;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 450;
        batteryInfo.starLevel            = 1;
        batteryInfo.desc                 = "用来安置人口的住所,要想引入新居民的话,就得建些这样的地方";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 200;
        publicList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "驻地(M)";
        batteryInfo.icon                 = "UI/Battery/ResidentMBattery";
        batteryInfo.model                = "ResidentMBatteryLv1";
        batteryInfo.battleType           = BatteryType.ResidentMBattery;
        batteryInfo.blood                = 1600;
        batteryInfo.attackValue          = 2400;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 450;
        batteryInfo.starLevel            = 2;
        batteryInfo.desc                 = "可以让人舒适居住的单位,可以增加城市的住宅容量";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 400;
        publicList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "休闲公园";
        batteryInfo.icon                 = "UI/Battery/LeisureParkBattery";
        batteryInfo.model                = "LeisureParkBatteryLv1";
        batteryInfo.battleType           = BatteryType.LeisureParkBattery;
        batteryInfo.blood                = 600;
        batteryInfo.attackValue          = 20;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 450;
        batteryInfo.starLevel            = 1;
        batteryInfo.desc                 = "一个能让城市人群放松下来的地方,里面有不少年轻人和来年人都喜爱的娱乐活动";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 100;
        publicList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "多厂";
        batteryInfo.icon                 = "UI/Battery/MultiPlantBattery";
        batteryInfo.model                = "MultiPlantBatteryLv1";
        batteryInfo.battleType           = BatteryType.MultiPlantBattery;
        batteryInfo.blood                = 1000;
        batteryInfo.attackValue          = 30;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 450;
        batteryInfo.starLevel            = 1;
        batteryInfo.desc                 = "这个单位负责满足你城市人民的基本需求,对一些大型娱乐活动也很有帮助";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 200;
        publicList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        batteryInfo                      = new BatteryConfigInfo();
        batteryInfo.batteryName          = "购物中心";
        batteryInfo.icon                 = "UI/Battery/ShoppingMallBattery";
        batteryInfo.model                = "ShoppingMallBatteryLv1";
        batteryInfo.battleType           = BatteryType.ShoppingMallBattery;
        batteryInfo.blood                = 1500;
        batteryInfo.attackValue          = 40;
        batteryInfo.attackRepeatRateTime = 2;
        batteryInfo.maxAttackDistance    = 450;
        batteryInfo.starLevel            = 1;
        batteryInfo.desc                 = "一个繁忙的地方,很适合举办大型活动,比如独一无二的安奎尔女士的演唱会";
        batteryInfo.wood                 = 10;
        batteryInfo.MW                   = 300;
        publicList.Add(batteryInfo);
        dic[batteryInfo.battleType] = batteryInfo;

        allList.AddRange(cannonList);
        allList.AddRange(gatlinGunList);
        allList.AddRange(missileList);
        allList.AddRange(specialList);
        allList.AddRange(publicList);
    }