public static string HealUnit(AbilitiesData abilityData, Unit healTarget)
    {
        int    heal    = abilityData.heal;
        string healLog = "Healer will heal target for " + heal + "\n";

        _temporaryLog += healLog;
        Heal(heal, healTarget);
        return(_temporaryLog);
    }
    public void LoadUnitAbility(UnitData unitData)
    {
        if (unitData.unitAbility)
        {
            _abilitiesData = unitData.unitAbility;
        }

        _unitSounds = gameObject.GetComponent <UnitSounds>();
    }
Exemple #3
0
    public AbilityPrefab(AbilitiesData abilityData)
    {
        this.abilityData = abilityData;

        basePath = AtavismUnityUtility.GetAssetPath(basePrefab);
        prefabName = itemPrefix + abilityData.name + itemSufix;
        prefabPath = basePath + prefabName;
        basePrefabPath = basePath + basePrefab;
    }
    public void Destroy(AbilitiesData _data)
    {
        if (_data.GetConditionData().Targets == TARGETS.ALL)
        {
            List <Card> cardList;
            cardList = GameManager.instance.GetConditionalList(_data.GetConditionData());

            for (int i = 0; i < cardList.Count; ++i)
            {
                cardList[i].Defeated();
            }
        }
    }
Exemple #5
0
 protected void ResetData()
 {
     Constants = Resources.Load <Abilities>("Abilities");
     for (int i = 0; i < Constants.dataArray.Length; i++)
     {
         if (Constants.dataArray[i].ABILITYTYPE != GetAbilityType())
         {
             continue;
         }
         Data = Constants.dataArray[i];
         break;
     }
 }
Exemple #6
0
    // Use this for initialization
    public ServerAbilities()
    {
        functionName = "Abilities";
        // Database tables name
        tableName = "abilities";
        functionTitle = "Abilities Configuration";
        loadButtonLabel = "Load Abilities";
        notLoadedText = "No Abilitie loaded.";
        // Init
        dataRegister = new Dictionary<int, AbilitiesData> ();

        editingDisplay = new AbilitiesData ();
        originalDisplay = new AbilitiesData ();
    }
Exemple #7
0
    // Load data from the prefab base on its name
    // return true if the prefab exist and false if there is no prefab
    public bool Load()
    {
        GameObject ability = (GameObject) AssetDatabase.LoadAssetAtPath(prefabPath,  typeof(GameObject));

        // If this is a new prefab
        if (ability == null)
            return false;

        abilityData = new AbilitiesData();
        abilityData.id = ability.GetComponent<Ability>().id;
        abilityData.name = ability.GetComponent<Ability>().name;
        //abilityData.icon = ability.GetComponent<Ability>().icon;
        abilityData.tooltip = ability.GetComponent<Ability>().tooltip;
        abilityData.activationCost = ability.GetComponent<Ability>().cost;
        abilityData.activationCostType = ability.GetComponent<Ability>().costProperty;

        return true;
    }
    public void WhenSummoned()
    {
        AbilitiesData abilityData = mCardReference.GetAbilityData();

        //AbilitiesCallback ability = abilityData.mAbilityCallback;

        if (abilityData.mAbilityMoment != ABILITY_MOMENT.BATTLECRY)
        {
            //Debug.LogWarning("Se cere battlecry cand abiltiatea nu e battlecry!!!");
            return;
        }

        //de sters
        //ConditionData condition = new ConditionData();
        //abilityData.Condition.Invoke(mCardReference, condition);
        //ability.Invoke(abilityData);
        abilityData.DoAbility(mCardReference);
    }
    public void ReturnToHand(AbilitiesData _data)
    {
        List <Card> cardList;

        if (_data.GetConditionData().Targets == TARGETS.ALL)
        {
            cardList = GameManager.instance.GetConditionalList(_data.GetConditionData());

            for (int i = 0; i < cardList.Count; ++i)
            {
                cardList[i].ToHand();
            }
        }
        else if (_data.GetConditionData().Targets == TARGETS.SELF)
        {
            _data.mCaster.ToHand();
        }
    }
 public static string AttackUnit(AbilitiesData abilityData, Unit defender)
 {
     if (abilityData.abilityType == AbilityType.SingleTarget)
     {
         int    damage    = abilityData.damage;
         string damageLog = "Attacker will damage defender for " + damage + "\n";
         _temporaryLog += damageLog;
         DealDamage(damage, defender);
     }
     else if (abilityData.abilityType == AbilityType.Circle)
     {
         int    damage    = abilityData.damage;
         string damageLog = "Attacker will damage defender for " + damage + "\n";
         _temporaryLog += damageLog;
         DealDamage(damage, defender);
     }
     return(_temporaryLog);
 }
Exemple #11
0
    // Edit or Create
    public override void DrawEditor(Rect box, bool newItem)
    {
        // Setup the layout
        Rect pos = box;
        pos.x += ImagePack.innerMargin;
        pos.y += ImagePack.innerMargin;
        pos.width -= ImagePack.innerMargin;
        pos.height = ImagePack.fieldHeight;

        if (!linkedTablesLoaded) {
            LoadEffectOptions ();
            LoadSkillOptions ();
            LoadItemList ();
            LoadCoordList ();
            weaponTypeOptions = ServerOptionChoices.LoadAtavismChoiceOptions("Weapon Type", true);
            speciesOptions = ServerOptionChoices.LoadAtavismChoiceOptions("Species", true);
            targetOptions = ServerOptionChoices.LoadAtavismChoiceOptions("Target Type", true);
            linkedTablesLoaded = true;
        }

        // Draw the content database info
        if (newItem) {
            ImagePack.DrawLabel (pos.x, pos.y, "Create a new Ability");
            pos.y += 1.5f * ImagePack.fieldHeight;
        }
        editingDisplay.name = ImagePack.DrawField (pos, "Name:", editingDisplay.name, 0.75f);
        pos.y += ImagePack.fieldHeight;
        pos.width /= 2;
        editingDisplay.abilityType = ImagePack.DrawSelector (pos, "Ability Type:", editingDisplay.abilityType, editingDisplay.abilityTypeOptions);
        pos.x += pos.width;
        editingDisplay.icon = ImagePack.DrawTextureAsset (pos, "Icon:", editingDisplay.icon);
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        int selectedSkill = GetPositionOfSkill (editingDisplay.skill);
        selectedSkill = ImagePack.DrawSelector (pos, "Skill:", selectedSkill, skillOptions);
        editingDisplay.skill = skillIds [selectedSkill];
        pos.y += ImagePack.fieldHeight;
        editingDisplay.passive = ImagePack.DrawToggleBox (pos, "Passive:", editingDisplay.passive);
        pos.y += 1.5f * ImagePack.fieldHeight;
        ImagePack.DrawLabel (pos.x, pos.y, "Activation Requirements");
        pos.y += 1.5f * ImagePack.fieldHeight;
        editingDisplay.activationCost = ImagePack.DrawField (pos, "Cost:", editingDisplay.activationCost);
        pos.y += ImagePack.fieldHeight;
        editingDisplay.activationCostType = ImagePack.DrawSelector (pos, "Cost Type:", editingDisplay.activationCostType, editingDisplay.activationCostTypeOptions);
        pos.x += pos.width;
        editingDisplay.activationLength = ImagePack.DrawField (pos, "Length:", editingDisplay.activationLength);
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        editingDisplay.casterEffectRequired = ImagePack.DrawCombobox (pos, "Caster Effect:", editingDisplay.casterEffectRequired, effectOptions);
        pos.x += pos.width;
        editingDisplay.casterEffectConsumed = ImagePack.DrawToggleBox (pos, "is Consumed?", editingDisplay.casterEffectConsumed);
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        editingDisplay.targetEffectRequired = ImagePack.DrawCombobox (pos, "Target Effect:", editingDisplay.targetEffectRequired, effectOptions);
        pos.x += pos.width;
        editingDisplay.targetEffectConsumed = ImagePack.DrawToggleBox (pos, "is Consumed?", editingDisplay.targetEffectConsumed);
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        int selectedItem = GetPositionOfItem (editingDisplay.reagentRequired);
        selectedItem = ImagePack.DrawSelector (pos, "Reagent:", selectedItem, itemsList);
        editingDisplay.reagentRequired = itemIds [selectedItem];
        pos.x += pos.width;
        editingDisplay.reagentConsumed = ImagePack.DrawToggleBox (pos, "is Consumed?", editingDisplay.reagentConsumed);
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        editingDisplay.weaponRequired = ImagePack.DrawSelector (pos, "Weapon:", editingDisplay.weaponRequired, weaponTypeOptions);
        /*pos.x += pos.width;
        editingDisplay.activationAnimation = ImagePack.DrawField (pos, "Animation:", editingDisplay.activationAnimation);
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        editingDisplay.activationParticles = ImagePack.DrawGameObject (pos, "Particles:", editingDisplay.activationParticles, 0.75f);*/
        pos.x += pos.width;
        editingDisplay.aoeRadius = ImagePack.DrawField (pos, "Effect Area:", editingDisplay.aoeRadius);
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        editingDisplay.maxRange = ImagePack.DrawField (pos, "Max. Range:", editingDisplay.maxRange);
        pos.x += pos.width;
        editingDisplay.minRange = ImagePack.DrawField (pos, "Min. Range:", editingDisplay.minRange);
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        editingDisplay.targetType = ImagePack.DrawSelector (pos, "Target Type:", editingDisplay.targetType, targetOptions);
        pos.x += pos.width;
        editingDisplay.targetState = ImagePack.DrawSelector (pos, "Target State:", editingDisplay.targetState, editingDisplay.targetStateOptions);
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        editingDisplay.speciesTargetReq = ImagePack.DrawSelector (pos, "Species Target:", editingDisplay.speciesTargetReq, speciesOptions);
        /*pos.x += pos.width;
        editingDisplay.specificTargetReq = ImagePack.DrawField (pos, "Specific Target:", editingDisplay.specificTargetReq);
        pos.x -= pos.width;*/
        pos.y += 1.5f * ImagePack.fieldHeight;
        ImagePack.DrawLabel (pos.x, pos.y, "Cooldown Attributes");
        pos.y += 1.5f * ImagePack.fieldHeight;
        editingDisplay.globalCooldown = ImagePack.DrawToggleBox (pos, "Global Cooldown?:", editingDisplay.globalCooldown);
        pos.x += pos.width;
        editingDisplay.weaponCooldown = ImagePack.DrawToggleBox (pos, "Weapon Cooldown?:", editingDisplay.weaponCooldown);
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        editingDisplay.cooldown1Type = ImagePack.DrawField (pos, "Cooldown Type:", editingDisplay.cooldown1Type);
        pos.x += pos.width;
        editingDisplay.cooldown1Duration = ImagePack.DrawField (pos, "Duration:", editingDisplay.cooldown1Duration);
        pos.x -= pos.width;
        pos.y += 1.5f * ImagePack.fieldHeight;
        ImagePack.DrawLabel (pos.x, pos.y, "Effects");
        pos.y += 1.5f * ImagePack.fieldHeight;
        editingDisplay.activationTarget1 = ImagePack.DrawSelector (pos, "Act. Target1:", editingDisplay.activationTarget1, editingDisplay.activationTarget1Options);
        pos.x += pos.width;
        int selectedEffect = GetPositionOfEffect(editingDisplay.activationEffect1);
        selectedEffect = ImagePack.DrawSelector (pos, "Act. Effect1:", selectedEffect, effectOptions);
        editingDisplay.activationEffect1 = effectIds[selectedEffect];
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        editingDisplay.activationTarget2 = ImagePack.DrawSelector (pos, "Act. Target2:", editingDisplay.activationTarget2, editingDisplay.activationTarget2Options);
        pos.x += pos.width;
        selectedEffect = GetPositionOfEffect(editingDisplay.activationEffect2);
        selectedEffect = ImagePack.DrawSelector (pos, "Act. Effect2:", selectedEffect, effectOptions);
        editingDisplay.activationEffect2 = effectIds[selectedEffect];
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        editingDisplay.activationTarget3 = ImagePack.DrawSelector (pos, "Act. Target3:", editingDisplay.activationTarget3, editingDisplay.activationTarget3Options);
        pos.x += pos.width;
        selectedEffect = GetPositionOfEffect(editingDisplay.activationEffect3);
        selectedEffect = ImagePack.DrawSelector (pos, "Act. Effect3:", selectedEffect, effectOptions);
        editingDisplay.activationEffect3 = effectIds[selectedEffect];
        pos.x -= pos.width;
        pos.y += 1.5f * ImagePack.fieldHeight;
        ImagePack.DrawLabel (pos.x, pos.y, "Coordinated Effects");
        pos.y += 1.5f * ImagePack.fieldHeight;
        editingDisplay.coordEffect1Event = ImagePack.DrawSelector (pos, "Effect Event 1:", editingDisplay.coordEffect1Event, editingDisplay.coordEffect1EventOptions);
        pos.x += pos.width;
        //editingDisplay.coordEffect1 = ImagePack.DrawField (pos, "Coord. Effect1:", editingDisplay.coordEffect1);
        editingDisplay.coordEffect1 = ImagePack.DrawSelector (pos, "Coord. Effect1:", editingDisplay.coordEffect1, coordList);
        pos.x -= pos.width;
        pos.y += ImagePack.fieldHeight;
        editingDisplay.coordEffect2Event = ImagePack.DrawSelector (pos, "Effect Event 2:", editingDisplay.coordEffect2Event, editingDisplay.coordEffect2EventOptions);
        pos.x += pos.width;
        //editingDisplay.coordEffect2 = ImagePack.DrawField (pos, "Coord. Effect2:", editingDisplay.coordEffect2);
        editingDisplay.coordEffect2 = ImagePack.DrawSelector (pos, "Coord. Effect2:", editingDisplay.coordEffect2, coordList);
        pos.x -= pos.width;

        pos.width *= 2;
        pos.y += 1.5f * ImagePack.fieldHeight;
        GUI.Label (pos, "Description:", ImagePack.FieldStyle ());
        pos.height *= 2;
        tooltipScroll = GUI.BeginScrollView(pos, tooltipScroll, new Rect(0, 0, pos.width * 0.75f, 100));
        editingDisplay.tooltip = GUI.TextArea (new Rect (115, 0, pos.width * 0.75f, 100), editingDisplay.tooltip, ImagePack.TextAreaStyle ());
        GUI.EndScrollView();
        pos.height /= 2;
        pos.width /= 2;

        pos.y += 2.2f*ImagePack.fieldHeight;
        pos.width *= 2;
        // Save data
        pos.x -= ImagePack.innerMargin;
        pos.width /= 3;
        if (ImagePack.DrawButton (pos.x, pos.y, "Save Data")) {
            if (newItem)
                InsertEntry ();
            else
                UpdateEntry ();

            state = State.Loaded;
        }

        // Delete data
        if (!newItem) {
            pos.x += pos.width;
            if (ImagePack.DrawButton (pos.x, pos.y, "Delete Data")) {
                DeleteEntry ();
                newSelectedDisplay = 0;
                state = State.Loaded;
            }
        }

        // Cancel editing
        pos.x += pos.width;
        if (ImagePack.DrawButton (pos.x, pos.y, "Cancel")) {
            editingDisplay = originalDisplay.Clone ();
            if (newItem)
                state = State.New;
            else
                state = State.Loaded;
        }

        if (resultTimeout != -1 && resultTimeout > Time.realtimeSinceStartup) {
            pos.y += ImagePack.fieldHeight;
            ImagePack.DrawText(pos, result);
        }

        if (!newItem)
            EnableScrollBar (pos.y - box.y + ImagePack.fieldHeight + 28);
        else
            EnableScrollBar (pos.y - box.y + ImagePack.fieldHeight);
    }
Exemple #12
0
 public override void CreateNewData()
 {
     editingDisplay = new AbilitiesData ();
     originalDisplay = new AbilitiesData ();
     selectedDisplay = -1;
 }
Exemple #13
0
    // Load Database Data
    public override void Load()
    {
        if (!dataLoaded) {
            // Clean old data
            dataRegister.Clear ();
            displayKeys.Clear ();

            // Read all entries from the table
            string query = "SELECT * FROM " + tableName;

            // If there is a row, clear it.
            if (rows != null)
                rows.Clear ();

            // Load data
            rows = DatabasePack.LoadData (DatabasePack.contentDatabasePrefix, query);
            //Debug.Log("#Rows:"+rows.Count);
            // Read all the data
            if ((rows != null) && (rows.Count > 0)) {
                foreach (Dictionary<string,string> data in rows) {
                    //foreach(string key in data.Keys)
                    //	Debug.Log("Name[" + key + "]:" + data[key]);
                    //return;
                    AbilitiesData display = new AbilitiesData ();

                    // Cleanup
                    string [] fields = new string[data.Count];
                    int i = 0;
                    foreach (string field in data.Keys) {
                        fields [i] = field;
                        i++;
                    }
                    foreach (string field in fields) {
                        if (field != "id") {
                            if ((display.fields [field] == "int") && (data [field] == ""))
                                data [field] = "0";
                            if (display.fields [field] == "bool") {
                                if (data [field].ToLower () == "true")
                                    data [field] = "True";
                                else
                                    data [field] = "False";
                            }
                        }
                    }

                    display.id = int.Parse (data ["id"]);
                    display.name = data ["name"];
                    display.icon = data ["icon"];

                    display.abilityType = data ["abilityType"];
                    display.skill = int.Parse (data ["skill"]);
                    display.passive = bool.Parse (data ["passive"]);
                    display.activationCost = int.Parse (data ["activationCost"]);
                    display.activationCostType = data ["activationCostType"];
                    display.activationLength = float.Parse (data ["activationLength"]);
                    display.activationAnimation = data ["activationAnimation"];
                    display.activationParticles = data ["activationParticles"];
                    display.casterEffectRequired = int.Parse (data ["casterEffectRequired"]);
                    display.casterEffectConsumed = bool.Parse (data ["casterEffectConsumed"]);
                    display.targetEffectRequired = int.Parse (data ["targetEffectRequired"]);
                    display.targetEffectConsumed = bool.Parse (data ["targetEffectConsumed"]);
                    display.weaponRequired = data ["weaponRequired"];
                    display.reagentRequired = int.Parse (data ["reagentRequired"]);
                    display.reagentConsumed = bool.Parse (data ["reagentConsumed"]);
                    display.maxRange = int.Parse (data ["maxRange"]);
                    display.minRange = int.Parse (data ["minRange"]);
                    display.aoeRadius = int.Parse (data ["aoeRadius"]);
                    display.targetType = data ["targetType"];
                    display.targetState = int.Parse (data ["targetState"]);
                    display.speciesTargetReq = data ["speciesTargetReq"];
                    display.specificTargetReq = data ["specificTargetReq"];
                    display.globalCooldown = bool.Parse (data ["globalCooldown"]);
                    display.cooldown1Type = data ["cooldown1Type"];
                    display.cooldown1Duration = float.Parse (data ["cooldown1Duration"]);
                    display.weaponCooldown = bool.Parse (data ["weaponCooldown"]);
                    display.activationEffect1 = int.Parse (data ["activationEffect1"]);
                    display.activationTarget1 = data ["activationTarget1"];
                    display.activationEffect2 = int.Parse (data ["activationEffect2"]);
                    display.activationTarget2 = data ["activationTarget2"];
                    display.activationEffect3 = int.Parse (data ["activationEffect3"]);
                    display.activationTarget3 = data ["activationTarget3"];
                    display.coordEffect1Event = data ["coordEffect1event"];
                    display.coordEffect1 = data ["coordEffect1"];
                    display.coordEffect2Event = data ["coordEffect2event"];
                    display.coordEffect2 = data ["coordEffect2"];
                    display.tooltip = data ["tooltip"];

                    display.isLoaded = true;
                    //Debug.Log("Name:" + display.name  + "=[" +  display.id  + "]");
                    dataRegister.Add (display.id, display);
                    displayKeys.Add (display.id);
                }
                LoadSelectList ();
            }
            dataLoaded = true;
        }
    }
Exemple #14
0
    // Draw the loaded list
    public override void DrawLoaded(Rect box)
    {
        // Setup the layout
        Rect pos = box;
        pos.x += ImagePack.innerMargin;
        pos.y += ImagePack.innerMargin;
        pos.width -= ImagePack.innerMargin;
        pos.height = ImagePack.fieldHeight;

        if (dataRegister.Count <= 0) {
            pos.y += ImagePack.fieldHeight;
            ImagePack.DrawLabel (pos.x, pos.y, "You must create an Ability before edit it.");
            return;
        }

        // Draw the content database info
        ImagePack.DrawLabel (pos.x, pos.y, "Abilities Configuration");

        if (newItemCreated) {
            newItemCreated = false;
            LoadSelectList ();
            newSelectedDisplay = displayKeys.Count - 1;
        }

        // Draw data Editor
        if (newSelectedDisplay != selectedDisplay) {
            selectedDisplay = newSelectedDisplay;
            int displayKey = displayKeys [selectedDisplay];
            editingDisplay = dataRegister [displayKey];
            originalDisplay = editingDisplay.Clone ();
        }

        //if (!displayList.showList) {
        pos.y += ImagePack.fieldHeight;
        pos.x -= ImagePack.innerMargin;
        pos.y -= ImagePack.innerMargin;
        pos.width += ImagePack.innerMargin;
        DrawEditor (pos, false);
        pos.y -= ImagePack.fieldHeight;
        //pos.x += ImagePack.innerMargin;
        pos.y += ImagePack.innerMargin;
        pos.width -= ImagePack.innerMargin;
        //}

        if (state != State.Loaded) {
            // Draw combobox
            pos.width /= 2;
            pos.x += pos.width;
            newSelectedDisplay = ImagePack.DrawCombobox (pos, "", selectedDisplay, displayList);
            pos.x -= pos.width;
            pos.width *= 2;
        }
    }
Exemple #15
0
    public void Save(AbilitiesData abilityData)
    {
        this.abilityData = abilityData;

        this.Save ();
    }
 public void Tap(AbilitiesData _card)
 {
     //to be done
 }
Exemple #17
0
 public void SetAbilityData(AbilitiesData _data)
 {
     mAbilityData = _data;
 }
 public void Draw(AbilitiesData _data)
 {
     GameManager.instance.CanDraw(_data.mMaxNumber);
 }