Пример #1
0
    private void Build(Unit client)
    {
        Clear();
        this.client = client;
        client.GetComponents <Ability>(_abils = new List <Ability>());
        int i = 0;

        foreach (Ability a in _abils)
        {
            if (i == buttons.Count)
            {
                break;
            }
            if (a is SustainedAbility)
            {
                if ((a as SustainedAbility).Active)
                {
                    buttons[i].HighLight = true;
                }
            }
            buttons[i].Label = "";
            buttons[i].Icon  = SkillDB.GetIcon(a.Name);
            i++;
        }
    }
Пример #2
0
        public void OnSkillButtonClick(string skillName)
        {
            Debug.Log("Skill clicked " + skillName);

            UnitInfo unitInfo       = GetUnitInfo(selectedIndex);
            string   unitNameInCode = unitInfo.nameInCode;
            bool     haveSkillPoint = GetAvailableSkillPoint(unitNameInCode) > 0;
            bool     isLearned      = SkillDB.IsLearned(unitNameInCode, skillName);
            bool     isEnhanceable  = SkillDB.GetEnhanceLevel(unitNameInCode, skillName) < maxEnhanceLevel && haveSkillPoint;

            if (!isLearned)
            {
                SkillDB.Learn(unitNameInCode, skillName);
            }
            else if (isEnhanceable)
            {
                SkillDB.Enhance(unitNameInCode, skillName);
            }
            else
            {
                Debug.LogError("Cannot learn or enhance");
            }

            UpdateSkills(selectedIndex);
            UpdateDetail(selectedIndex);
        }
    public override void OnOperationResponse(OperationResponse operationResponse)
    {
        SubCode subCode = ParameterTool.GetSubCode(operationResponse.Parameters);

        switch (subCode)
        {
        case SubCode.GetSkillDBList:
            //Debug.Log("OnGetSkillList");
            List <SkillDB> skillList = ParameterTool.GetParameter <List <SkillDB> >(operationResponse.Parameters, ParameterCode.SkillDBList);
            OnGetSkillList(skillList);
            break;

        case SubCode.AddSkillDB:
            //Debug.Log("OnAddSkillDB");
            SkillDB skillAdd = ParameterTool.GetParameter <SkillDB>(operationResponse.Parameters, ParameterCode.SkillDB);
            OnAddSkillDB(skillAdd);
            break;

        case SubCode.UpgradeSkillDB:
            //Debug.Log("OnUpgradeSkillDB");
            SkillDB skillUpgrade = ParameterTool.GetParameter <SkillDB>(operationResponse.Parameters, ParameterCode.SkillDB);
            OnUpgradeSkillDB(skillUpgrade);
            break;
        }
    }
Пример #4
0
    public void ApplySkillList(List <SkillInfo> skillInfoList, List <StatusEffectInfo> statusEffectInfoList)
    {
        float partyLevel = (float)FindObjectOfType <BattleManager>().GetPartyLevel();

        foreach (var skillInfo in skillInfoList)
        {
            if ((skillInfo.GetOwner() == this.nameInCode) &&
                (skillInfo.GetRequireLevel() <= partyLevel))
            {
                Skill skill = skillInfo.GetSkill();
                if (SkillDB.IsLearned(this.nameInCode, skill.GetName()))
                {
                    skill.SetLevel(SkillDB.GetEnhanceLevel(this.GetName(), skill.GetName()));
                    skill.ApplyStatusEffectList(statusEffectInfoList);
                    skillList.Add(skill);
                }
            }
        }
        // 비어있으면 디폴트 스킬로 채우도록.
        if (skillList.Count() == 0)
        {
            foreach (var skillInfo in skillInfoList)
            {
                if ((skillInfo.GetOwner() == "default") &&
                    (skillInfo.GetRequireLevel() <= partyLevel))
                {
                    skillList.Add(skillInfo.GetSkill());
                }
            }
        }
    }
Пример #5
0
    private void BuildButton(Vector3 v3, string n, int callback, bool enabled, bool chain)
    {
        MyButton mb = GetButton();

        mb.transform.localPosition = v3;
        if (n == "Str")
        {
            mb.icon.sprite = str;
        }
        else if (n == "Dex")
        {
            mb.icon.sprite = dex;
        }
        else if (n == "Agi")
        {
            mb.icon.sprite = agi;
        }
        else if (n == "Int")
        {
            mb.icon.sprite = inte;
        }
        else
        {
            mb.icon.sprite = SkillDB.GetIcon(n);
        }
        if (enabled)
        {
            mb.Register(Select, callback);
        }
        mb.Pulse  = enabled;
        mb.chain  = chain;
        mb.Active = enabled;
        mb.MouseoverCallback(BuildStringText, n);
        // mb.MouseoverText = SkillDB.GetToolTip(n);
    }
 private void Awake()
 {
     parentObj     = GameObject.FindGameObjectWithTag("SkillCanvas");
     skillDB       = GameObject.FindGameObjectWithTag("GameController").GetComponent <SkillDB>();
     starterSkills = parentObj.GetComponentInChildren <SkillsGrid>();
     player        = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerCharacter>();
 }
Пример #7
0
    public void UpdateSkillDB(SkillDB skillDb)
    {
        Dictionary <byte, object> parameters = new Dictionary <byte, object>();

        skillDb.Role = null;
        ParameterTool.AddParmeter(parameters, ParameterCode.SkillDB, skillDb);
        PhotonEngine.Instance.SendRequest(OpCode, SubCode.Update, parameters);
    }
Пример #8
0
 public skillMgr(SkillDB db, ItemManager itemManager, TimerManager timerManager, SystemManager systemManager, BoundServiceManager manager, Logger logger) : base(manager)
 {
     this.DB            = db;
     this.ItemManager   = itemManager;
     this.TimerManager  = timerManager;
     this.SystemManager = systemManager;
     this.Log           = logger.CreateLogChannel("SkillManager");
 }
Пример #9
0
 public skillMgr(SkillDB db, ItemFactory itemFactory, TimerManager timerManager,
                 BoundServiceManager manager, Logger logger) : base(manager, null)
 {
     this.DB           = db;
     this.ItemFactory  = itemFactory;
     this.TimerManager = timerManager;
     this.Log          = logger.CreateLogChannel("SkillManager");
 }
Пример #10
0
 void InitSkills()
 {
     mSkills.Add(0, SkillDB.CreateAbility(mCharacterProperty, 0));
     mSkills.Add(1, SkillDB.CreateAbility(mCharacterProperty, 1));
     mSkills.Add(2, SkillDB.CreateAbility(mCharacterProperty, 2));
     mSkills.Add(3, SkillDB.CreateAbility(mCharacterProperty, 3));
     mSkills.Add(4, SkillDB.CreateAbility(mCharacterProperty, 4));
     mSkills.Add(5, SkillDB.CreateAbility(mCharacterProperty, 5));
 }
Пример #11
0
    public void OnUpgradeSkillDB(SkillDB skillDB)
    {
        Skill skill = null;

        if (skillDict.TryGetValue(skillDB.SkillId, out skill))
        {
            skill.SyncSkill(skill.SkillDB);
        }
    }
Пример #12
0
 public ItemManager(Logger logger, ItemDB itemDB, SkillDB skillDB, NodeContainer nodeContainer, MetaInventoryManager metaInventoryManager)
 {
     // create a log channel for the rare occurence of the ItemManager wanting to log something
     this.Log                  = logger.CreateLogChannel("ItemManager");
     this.ItemDB               = itemDB;
     this.SkillDB              = skillDB;
     this.NodeContainer        = nodeContainer;
     this.MetaInventoryManager = metaInventoryManager;
 }
Пример #13
0
    public void OnUpgradeSkillDB(SkillDB skillDb)
    {
        Skill skill;

        if (skillDict.TryGetValue(skillDb.SkilId, out skill))
        {
            skill.Sync(skillDb);
        }
    }
Пример #14
0
    public List <Skill> GetLearnedSkillList()
    {
        var learnedSkills =
            from skill in skillList
            where SkillDB.IsLearned(nameInCode, skill.GetName())
            select skill;

        Debug.LogWarning(GetNameInCode() + " Learnedskils" + learnedSkills.Count());
        return(learnedSkills.ToList());
    }
Пример #15
0
 public void Add(SkillDB skillDB)
 {
     using (var session = NHibernateHelper.OpenSession())
     {
         using (var transaction = session.BeginTransaction())
         {
             session.Save(skillDB);
             transaction.Commit();
         }
     }
 }
Пример #16
0
        private int GetAllUsedSkillPoint(string unitName)
        {
            List <string> skillNames = SkillDB.GetLearnedSkillNames(unitName);
            int           sum        = 0;

            foreach (string skillName in skillNames)
            {
                sum += SkillDB.GetEnhanceLevel(unitName, skillName);
            }
            return(sum);
        }
Пример #17
0
 public void Update(SkillDB skillDb)
 {
     using (var session = NHibernateHelper.OpenSession())
     {
         using (var transaction = session.BeginTransaction())
         {
             session.Update(skillDb);
             transaction.Commit();
         }
     }
 }
Пример #18
0
    public void Upgrade(SkillDB skillDB)
    {
        Dictionary <byte, object> parameters = new Dictionary <byte, object>();
        Role role = PhotonEngine.Instance.role;

        role.User = null;
        ParameterTool.AddParameter(parameters, ParameterCode.Role, role);
        skillDB.Role = null;
        ParameterTool.AddParameter(parameters, ParameterCode.SkillDB, skillDB);
        PhotonEngine.Instance.SendRequest(OpCode, SubCode.Upgrade, parameters);
    }
Пример #19
0
        protected skillMgr(SkillDB db, ItemFactory itemFactory, TimerManager timerManager,
                           BoundServiceManager manager, Logger logger, Client client) : base(manager, client)
        {
            this.DB           = db;
            this.ItemFactory  = itemFactory;
            this.TimerManager = timerManager;
            this.Character    = this.ItemFactory.GetItem <Character>(client.EnsureCharacterIsSelected());
            this.Log          = logger.CreateLogChannel("SkillManager");

            this.InitializeCharacter();
        }
Пример #20
0
 public void Upgrade(SkillDB skillDb, Role role)
 {
     using (var session = NHibernateHelper.OpenSession())
     {
         using (var transaction = session.BeginTransaction())
         {
             session.SaveOrUpdate(skillDb);
             session.Update(role);
             transaction.Commit();
         }
     }
 }
Пример #21
0
        private int GetUsedSkillPointUntilLevel(string unitName, int level)
        {
            List <string> skillNames = SkillDB.GetLearnedSkillNames(unitName);
            int           sum        = 0;

            foreach (string skillName in skillNames)
            {
                if (skillInfoByName[skillName].requireLevel <= level)
                {
                    sum += SkillDB.GetEnhanceLevel(unitName, skillName);
                }
            }
            return(sum);
        }
Пример #22
0
 public void Upgrade()
 {
     Level++;
     if (skillDB == null)  //第一次还没有技能
     {
         skillDB         = new SkillDB();
         skillDB.SkillId = Id;
         skillDB.Level   = Level;
     }
     else
     {
         skillDB.Level = Level;
     }
 }
Пример #23
0
 public void Upgrade()
 {
     level++;
     if (skillDb == null)
     {
         skillDb        = new SkillDB();
         skillDb.Level  = Level;
         skillDb.SkilId = id;
     }
     else
     {
         skillDb.Level = Level;
     }
 }
Пример #24
0
 public void Upgrade()
 {
     Level++;
     if (skillDB == null)
     {
         skillDB         = new SkillDB();
         skillDB.Level   = Level;
         skillDB.SkillID = id;
     }
     else
     {
         skillDB.Level = Level;
     }
 }
Пример #25
0
        public override void OnHandlerMessage(OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters)
        {
            SubCode subcode = ParameterTool.GetSubCode(request.Parameters);

            ParameterTool.AddSubCode(response.Parameters, subcode);
            switch (subcode)
            {
            case SubCode.AddSkillDB:
                SkillDB skilldb = ParameterTool.GetParameter <SkillDB>(request.Parameters, ParameterCode.SkillDB);
                skilldb.Role = peer.LoginRole;
                skilldbManager.AddSkillDB(skilldb);
                skilldb.Role = null;
                ParameterTool.AddParameter(response.Parameters, ParameterCode.SkillDB, skilldb);
                break;

            case SubCode.GetSkillDBList:
                List <SkillDB> list = skilldbManager.Get(peer.LoginRole);
                foreach (var temp in list)
                {
                    temp.Role = null;
                }
                ParameterTool.AddParameter(response.Parameters, ParameterCode.SkillDBList, list);
                break;

            case SubCode.UpdateSkillDB:
                SkillDB skilldb1 = ParameterTool.GetParameter <SkillDB>(request.Parameters, ParameterCode.SkillDB);
                skilldb1.Role = peer.LoginRole;
                skilldbManager.UpdateSkillDB(skilldb1);

                break;

            case SubCode.UpgradeSkillDB:
                SkillDB skilldb2 = ParameterTool.GetParameter <SkillDB>(request.Parameters, ParameterCode.SkillDB);
                Role    role     = ParameterTool.GetParameter <Role>(request.Parameters, ParameterCode.Role);
                role.User     = peer.LoginUser;
                skilldb2.Role = role;
                skilldbManager.UpgradeSkillDB(skilldb2, role);
                skilldb2.Role = null;
                ParameterTool.AddParameter(response.Parameters, ParameterCode.SkillDB, skilldb2);
                break;
            }
        }
Пример #26
0
        public void TestSkillDB()
        {
            string data = TestContext.RootPath + "Resources/MtSkill.txt";

            data = File.ReadAllText(data);
            Assert.NotZero(data.Length);

            SkillDB.Init(data);
            Assert.NotZero(SkillDB.Instance.Count);
            Assert.True(SkillDB.Instance.ContainsKey("레지스트"));
            // Linear
            Assert.AreEqual(RangeType.C, SkillDB.Instance["싸우기"].RangeType);
            // Cross
            Assert.AreEqual(RangeType.A, SkillDB.Instance["마법"].RangeType);
            //
            Assert.AreEqual(RangeType.E, SkillDB.Instance["대회전"].RangeType);
            // SelfTarget
            Assert.AreEqual(RangeType.E, SkillDB.Instance["러블리캐논"].RangeType);
            //
            Assert.AreEqual(RangeType.E, SkillDB.Instance["레지스트"].RangeType);
        }
Пример #27
0
    public override void OnOperationResponse(OperationResponse response)
    {
        SubCode subCode = ParameterTool.GetSubcode(response.Parameters);

        switch (subCode)
        {
        case SubCode.Add:
            SkillDB skillDb = ParameterTool.GetParameter <SkillDB>(response.Parameters, ParameterCode.SkillDB);
            if (OnAddSkillDB != null)
            {
                OnAddSkillDB(skillDb);
            }
            break;

        case SubCode.Get:
            List <SkillDB> list =
                ParameterTool.GetParameter <List <SkillDB> >(response.Parameters, ParameterCode.SkillDBList);
            if (OnGetSkillDBList != null)
            {
                OnGetSkillDBList(list);
            }
            break;

        case SubCode.Update:
            if (OnUpdateSkillDB != null)
            {
                OnUpdateSkillDB();
            }
            break;

        case SubCode.Upgrade:
            SkillDB skillDb2 = ParameterTool.GetParameter <SkillDB>(response.Parameters, ParameterCode.SkillDB);
            if (OnUpgradeSkillDB != null)
            {
                OnUpgradeSkillDB(skillDb2);
            }
            break;
        }
    }
Пример #28
0
        public override void OnHandlerMessage(OperationRequest request, OperationResponse response, ClientPeer peer)
        {
            SubCode subCode = ParameterTool.GetSubCode(request.Parameters);

            ParameterTool.AddSubCode(response.Parameters, subCode);
            switch (subCode)
            {
            case SubCode.GetSkillDBList:
                List <SkillDB> listGet = manager.GetSkillDBList(peer.LoginRole);
                foreach (var temp in listGet)
                {
                    temp.Role = null;
                }
                ParameterTool.AddParameter(response.Parameters, ParameterCode.SkillDBList, listGet);
                break;

            case SubCode.AddSkillDB:
                SkillDB skillAdd = ParameterTool.GetParameter <SkillDB>(request.Parameters, ParameterCode.SkillDB);
                Role    roleAdd  = ParameterTool.GetParameter <Role>(request.Parameters, ParameterCode.Role);
                roleAdd.User   = peer.LoginUser;
                peer.LoginRole = roleAdd;
                skillAdd.Role  = roleAdd;
                manager.AddSkill(skillAdd, roleAdd);
                skillAdd.Role = null;
                ParameterTool.AddParameter(response.Parameters, ParameterCode.SkillDB, skillAdd);
                break;

            case SubCode.UpgradeSkillDB:
                SkillDB skillUpgrade = ParameterTool.GetParameter <SkillDB>(request.Parameters, ParameterCode.SkillDB);
                Role    roleUpgrade  = ParameterTool.GetParameter <Role>(request.Parameters, ParameterCode.Role);
                roleUpgrade.User  = peer.LoginUser;
                peer.LoginRole    = roleUpgrade;
                skillUpgrade.Role = roleUpgrade;
                manager.UpgradeSkill(skillUpgrade, roleUpgrade);
                skillUpgrade.Role = null;
                ParameterTool.AddParameter(response.Parameters, ParameterCode.SkillDB, skillUpgrade);
                break;
            }
        }
Пример #29
0
 public void Build(string s, MyButton b)
 {
     b.Label = s;
     b.Icon  = SkillDB.GetIcon(s);
     b.MouseoverCallback(MouseOver, s);
 }
Пример #30
0
 void MouseOver(string s)
 {
     setDescription(s, SkillDB.GetDescription(s, client.Name), SkillDB.GetIcon(s));
 }