Exemple #1
0
        private void Action()
        {
            GameUnit.GameUnit unit           = (GameUnit.GameUnit) this.GetSelectingUnits()[0];
            Vector3           unitCoordinate = BattleMap.BattleMap.Instance().GetUnitCoordinate(unit);
            AbilityFormat     ability        = AbilityDatabase.GetInstance().GetAbilityFormat("Arrowrain");

            Gameplay.Instance().gamePlayInput.HandleSkillConfim(unitCoordinate, (int)ability.AbilityVariable.Range);//显示技能可释放范围(攻击范围)
            //GamePlay.Gameplay.Instance().gamePlayInput.isSkill = true;//可以发动技能
        }
Exemple #2
0
 private void Start()
 {
     arrowrRain = AbilityDatabase.GetInstance().GetAbilityFormat("Arrowrain");
     range      = (int)arrowrRain.AbilityVariable.Range;
     damage     = (int)arrowrRain.AbilityVariable.Damage;
     //创建Trigger实例,传入技能的发动者
     trigger = new TArrowrain(this.GetCardReceiver(this));
     //注册Trigger进消息中心
     MsgDispatcher.RegisterMsg(trigger, "Arrowrains");
 }
 public static AbilityDatabase GetInstance()
 {
     if (_instance == null)
     {
         _instance = FindObjectOfType(typeof(AbilityDatabase)) as AbilityDatabase;
         if (_instance == null)
         {
             GameObject obj = new GameObject();
             obj.name  = typeof(AbilityDatabase).ToString();
             _instance = obj.AddComponent <AbilityDatabase>();
         }
     }
     return(_instance);
 }
        /// <summary>
        /// 从异能数据库加载对应异能的参数
        /// </summary>
        /// <param name="AbilityID">要加载的异能的ID</param>
        protected void InitialAbility(string AbilityID)
        {
            AbilityFormat abilityFormat = AbilityDatabase.GetInstance().GetAbilityFormat(AbilityID);

            //用序列化拷贝AbilityTargetList;
            Stream stream = GameUtility.Serializer.InstanceDataToMemory(abilityFormat.AbilityTargetList);

            stream.Position        = 0;
            this.AbilityTargetList = (List <AbilityTarget>)GameUtility.Serializer.MemoryToInstanceData(stream);
            //用序列化拷贝AbilityVariable
            stream               = GameUtility.Serializer.InstanceDataToMemory(abilityFormat.AbilityVariable);
            stream.Position      = 0;
            this.AbilityVariable = (AbilityVariable)GameUtility.Serializer.MemoryToInstanceData(stream);
            //Debug.Log("Success copy AbilityVariable");
            //拷贝变量
            this.AbilityID   = abilityFormat.AbilityID;
            this.Group       = abilityFormat.Group;
            this.AbilityName = abilityFormat.AbilityName;
            this.Description = abilityFormat.Description;
            this.TriggerID   = abilityFormat.TriggerID;
        }
Exemple #5
0
 private void Awake()
 {
     //导入Arrowrain异能的参数
     arrowrRain = AbilityDatabase.GetInstance().GetAbilityFormat("Arrowrain");
     InitialAbility("Arrowrain");
 }