Beispiel #1
0
    public override Skill Clone()
    {
        SplashPas ret = new SplashPas(m_name, m_fNearRange, m_oExNearDamage, m_fFarRange, m_oExFarDamage, m_dwTriggerMask, m_effectiveTypeFlags);

        ret.CopyDataFrom(this);
        return(ret);
    }
Beispiel #2
0
    // Skills
    public void LoadBaseSkills()
    {
        Skill skill;

        skill = new SplashPas("SplashAttack", 0.5f, new Coeff(0.75f, 0), 1f, new Coeff(0.25f, 0));
        AddBaseSkill(skill);
    }
Beispiel #3
0
    public override Skill Clone(string data)
    {
        SplashPas ret = new SplashPas(m_name, m_fNearRange, m_oExNearDamage, m_fFarRange, m_oExFarDamage, m_dwTriggerMask, m_effectiveTypeFlags);
        SkillData sd  = JsonUtility.FromJson <SkillData>(data);

        ret.CopyDataFrom(sd);
        return(ret);
    }
Beispiel #4
0
    void Awake()
    {
        Debug.Log("===== TEST START =====");
        //string json = "{\"b\": 3, \"pos\":{\"x\":1,\"y\":2}}";
        Test a = new Test();

        a.a = 1;
        a.b = 2;
        //a.pos = new Vector2 (3, 4);
        //json = JsonUtility.ToJson (a);
        //Test t = JsonMapper.ToObject<Test> (json);
        //Test t = JsonUtility.FromJson<Test>(json);

        Skill skill = new SplashPas("SplashAttack", 0.5f, new Coeff(0.75f, 0), 1f, new Coeff(0.25f, 0));

        skill.test();
        //Debug.Log (t);

        Texture2D  texture    = Resources.Load <Texture2D>(string.Format("{0}/{1}", "Tanks/body", "body16"));
        Sprite     sprite     = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
        GameObject tankObject = Instantiate(m_unitPrefab);

        tankObject.GetComponent <SpriteRenderer>().sprite = sprite;
    }
Beispiel #5
0
    /// <summary>
    /// Server发起
    /// </summary>
    /// <param name="syncInfo"></param>
    /// <param name="playerId"></param>
    public Unit CreateUnit(SyncUnitInfo syncInfo, int playerId = 0)
    {
        localClient.ServerAddSyncAction(new SyncCreateUnit(syncInfo, playerId));

        GamePlayerController player;

        GameManager.AllPlayers.TryGetValue(playerId, out player);

        GameObject obj  = GameObjectPool.instance.Instantiate(unitPrefab);
        UnitNode   node = obj.GetComponent <UnitNode>();
        Unit       unit = obj.GetComponent <Unit>();

        ResourceManager.instance.LoadUnitModel(syncInfo.baseInfo.model);  // high time cost
        ResourceManager.instance.AssignModelToUnitNode(syncInfo.baseInfo.model, node);

        unit.m_id = syncInfo.id;
        node.m_id = syncInfo.id;
        AddUnit(unit);

        unit.m_model = syncInfo.baseInfo.model;
        if (isServer)
        {
            unit.AI = UnitAI.instance;
        }

        unit.Name = syncInfo.baseInfo.name;
        unit.InitHp(syncInfo.hp, (float)syncInfo.baseInfo.maxHp);
        if (syncInfo.baseInfo.attackSkill.valid)
        {
            AttackAct atk = new AttackAct(syncInfo.baseInfo.attackSkill.name, (float)syncInfo.baseInfo.attackSkill.cd, new AttackValue(AttackValue.NameToType(syncInfo.baseInfo.attackSkill.type), (float)syncInfo.baseInfo.attackSkill.value), (float)syncInfo.baseInfo.attackSkill.vrange);
            atk.CastRange      = (float)syncInfo.baseInfo.attackSkill.range;
            atk.CastHorizontal = syncInfo.baseInfo.attackSkill.horizontal;
            foreach (string ani in syncInfo.baseInfo.attackSkill.animations)
            {
                atk.AddCastAnimation(ModelNode.NameToId(ani));
            }
            atk.ProjectileTemplate = ResourceManager.instance.LoadProjectile(syncInfo.baseInfo.attackSkill.projectile);
            unit.AddActiveSkill(atk);
        }
        node.position = syncInfo.position;
        node.SetFlippedX(syncInfo.flippedX);
        unit.force.Force    = syncInfo.force;
        unit.MoveSpeedBase  = (float)syncInfo.baseInfo.move;
        unit.Revivable      = syncInfo.baseInfo.revivable;
        unit.Fixed          = syncInfo.baseInfo.isfixed;
        unit.level.MaxLevel = 100;
        unit.level.Level    = 10;

        if (player != null)
        {
            // 玩家单位
            Debug.LogFormat("CreateUnit, unitId({0}) <-> playerId({1}).", unit.Id, player.playerId);
            if (player == localClient)
            {
                Debug.LogFormat("That's Me, {0}.", unit.Name);
            }

            // TEST !!!!
            unit.InitHp(5000, 5000);
            unit.AttackSkill.coolDownBase       = 2.0f;
            unit.AttackSkill.coolDownSpeedCoeff = 2;
            unit.CriticalRateBase   = 0.2f;
            unit.CriticalDamageBase = 20.0f;

            SplashPas splash = new SplashPas("SplashAttack", 0.5f, new Coeff(0.75f, 0), 1f, new Coeff(0.25f, 0));
            unit.AddPassiveSkill(splash);

            if (player == localClient)
            {
                BattleWorldUI.Current.portraitGroup.AddPortrait(unit);
            }
        }

        node.SetFrame(ModelNode.kFrameDefault);
        CreateUnitHUD(unit);
        return(unit);
    }