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); }
// 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); }
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); }
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; }
/// <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); }