Beispiel #1
0
 private void Awake()
 {
     owner = this.transform.parent.parent.Find("CharacterIcon").
             GetComponent <ActivePlayer>().player.GetComponent <UnityCharacter>();
     this.GetComponent <Button>().onClick.AddListener(Regive);
     descriptor = transform.parent.GetComponent <ItemDescriptionScript>();
 }
Beispiel #2
0
    public void StartBattle(UnityCharacter enemy, UnityCharacter player, Collider2D collision)
    {
        if (FightStarted)
        {
            return;
        }
        this.FightStarted = true;
        GameObject.Find("Saving").GetComponent <SaveManager>().Save();
        message.Show("Время битвы!");
        this.satellites = player.satellites;
        satellites.Add(player);
        foreach (var satellite in this.satellites)
        {
            satellite.Character.DeathEvent += OnDeath;
        }
        this.enemies = enemy.satellites;
        enemies.Add(enemy);
        foreach (var satellite in this.enemies)
        {
            satellite.Character.DeathEvent += OnDeath;
            if (satellite.gameObject.name != enemy.gameObject.name)
            {
                satellite.transform.Find("FightZone").GetComponent <Collider2D>().enabled = false;
            }
        }
        this.collision = collision;
        this.turn      = 0;

        Battle();
    }
Beispiel #3
0
 void Start()
 {
     activeCharacter = this.transform.parent.parent.parent.Find("CharacterIcon").
                       GetComponent <ActivePlayer>().player.GetComponent <UnityCharacter>();
     message = this.transform.parent.parent.parent.Find("MessageBox").GetComponent <ChangeMessage>();
     this.GetComponent <Button>().onClick.AddListener(Cast);
 }
Beispiel #4
0
 private void Cast()
 {
     owner = this.transform.parent.parent.Find("CharacterIcon").
             GetComponent <ActivePlayer>().player.GetComponent <UnityCharacter>();
     if (descriptor.isAboutSpell)
     {
         owner.isSpellSelected    = true;
         owner.selectedSpellIndex = (uint)descriptor.slotNumber;
         spellSlot.GetComponent <Image>().color = Color.red;
         owner.selectedSpell = (owner.Character as Magician).SpellsList.Spells[(int)descriptor.slotNumber];
         this.transform.parent.parent.Find("Buttons").Find("SpellbookButton").Find("Slot").GetComponent <Image>().sprite =
             this.transform.parent.parent.Find("SpellBook").Find("Slot (" + descriptor.slotNumber + ")").GetComponent <Image>().sprite;
     }
     else
     {
         owner.selectedArtifact  = owner.Character.Inventory.Artifacts[(int)descriptor.slotNumber];
         owner.isArifactSelected = true;
         itemSlot.GetComponent <Image>().color = Color.red;
         owner.selectedArtifactIndex           = (uint)descriptor.slotNumber;
         this.transform.parent.parent.Find("Buttons").Find("InventoryButton").Find("Slot").GetComponent <Image>().sprite =
             this.transform.parent.parent.Find("Inventory").Find("Slot (" + descriptor.slotNumber + ")").GetComponent <Image>().sprite;
     }
     descriptor.Hide();
 }
Beispiel #5
0
    void OnMouseDown()
    {
        var activePlayerScript = GameObject.Find("CharacterIcon").GetComponent <ActivePlayer>();

        active = activePlayerScript.player.GetComponent <UnityCharacter>();
        if (active.isRegiving)
        {
            if (this.gameObject.tag != "Player")
            {
                message.Show("Передавать вещи можно только своим");
            }
            else
            {
                active.Character.Inventory.Artifacts.Remove(active.isToBeRegiven);
                thisReceiver.Inventory.Artifacts.Add(active.isToBeRegiven);
            }
            active.isToBeRegiven = null;
            active.isRegiving    = false;
            return;
        }
        if (this.gameObject.tag == "Player" && !active.isSpellSelected && !active.isArifactSelected)
        {
            if (active.isRegiving)
            {
            }
            else
            {
                activePlayerScript.ChangePlayer(this.gameObject);
            }
            return;
        }

        if (active.isArifactSelected)
        {
            var artifact = active.Character.Inventory.Artifacts[(int)active.selectedArtifactIndex];

            if (active.isArifactSelected && artifact.IsFightOnly && !fightSystem.FightStarted)
            {
                message.Show("Не к чему бороться в мирное время");
                return;
            }
            if (active.isArifactSelected && artifact.Used)
            {
                message.Show("Нельзя использовать один артефакт за ход дважды");
                return;
            }
            if (artifact.IsFightOnly)
            {
                artifact.Used = true;
            }
            var recepient = this.GetComponent <UnityCharacter>().Character;
            if (this.tag == "Enemy" || this.tag == "Player")
            {
                bool isForOneTime = artifact.IsRechargeable;
                if (artifact.HasPower)
                {
                    //active.Character.Inventory.ActivateArtifact((int)active.selectedArtifactIndex, thisReceiver, 3);
                    System.Random random = new System.Random();
                    try {
                        Cast(random.Next(0, Math.Min((int)artifact.Power, (int)thisReceiver.MaxHp)) + 1);
                    } catch {
                    }
                }
                else
                {
                    try {
                        Cast(1);
                    } catch { }
                }
                // if (isForOneTime)
                {
                    active.isArifactSelected     = false;
                    active.selectedArtifactIndex = 0;
                    var artifactButton =
                        GameObject.Find("Canvas").transform.Find("Buttons").Find("InventoryButton").Find("Slot").GetComponent <Image>();
                    artifactButton.sprite = null;
                    artifactButton.color  = Color.white;
                }
            }
            else
            {
                if (this.gameObject.name == "granny")
                {
                    if (artifact.Name == "Цветочки")
                    {
                        if (questSystem.GetByTag("GrannyQuest") != null &&
                            !questSystem.GetByTag("GrannyQuest").IsFinished)
                        {
                            active.Character.Inventory.ExchangeArtifact(recepient, (int)active.selectedArtifactIndex);
                            dialogSystem.Show("03VillageGrannyCompleting.txt");
                            this.transform.Find("QuestReceiver").GetComponent <QuestReceiver>().FinishQuest();
                        }
                        else
                        {
                            dialogSystem.Show("03VillageGrannyBase.txt");
                            return;
                        }
                    }
                    else
                    {
                        dialogSystem.Show("03VillageGrannyDontWant.txt");
                        return;
                    }
                }
                else
                if (this.gameObject.name == "Well" && questSystem.GetByTag("SaintWater") != null &&
                    !questSystem.GetByTag("SaintWater").IsFinished)
                {
                    if (artifact.GetType() == typeof(CatFishScripts.Artifacts.LivingWaterBottle))
                    {
                        active.Character.Inventory.ExchangeArtifact(recepient, (int)active.selectedArtifactIndex);
                        message.Show("Вы освятили колодец");
                        this.transform.Find("QuestReceiver").GetComponent <QuestReceiver>().FinishQuest();
                    }
                }
                else
                if (this.gameObject.name == "oldboy")
                {
                    if (artifact.Name == "Грибы")
                    {
                        if (questSystem.GetByTag("Mushrooms") != null &&
                            !questSystem.GetByTag("Mushrooms").IsFinished)
                        {
                            int i = 0;
                            while (i < active.Character.Inventory.Artifacts.Count)
                            {
                                if (active.Character.Inventory.Artifacts[i].Name == "Грибы")
                                {
                                    active.Character.Inventory.ExchangeArtifact(recepient, i);
                                    i--;
                                }
                                i++;
                            }
                            if (recepient.Inventory.Artifacts.Count == 8)
                            {
                                dialogSystem.Show("04OldBoyFinish.txt");
                                this.transform.Find("QuestReceiver").GetComponent <QuestReceiver>().FinishQuest();
                            }
                        }
                        else
                        {
                            dialogSystem.Show("04OldBoyCompleting.txt");
                            return;
                        }
                    }
                    else
                    {
                        dialogSystem.Show("04OldBoyCompleting.txt");
                        return;
                    }
                }
                else if (this.gameObject.name == "elf")
                {
                    if (artifact.GetType() == typeof(CatFishScripts.Artifacts.BasiliskEye))
                    {
                        if (questSystem.GetByTag("ElfQuest") != null &&
                            !questSystem.GetByTag("ElfQuest").IsFinished)
                        {
                            active.Character.Inventory.ExchangeArtifact(recepient, (int)active.selectedArtifactIndex);
                        }
                    }
                    else
                    {
                        return;
                    }
                }
                active.isArifactSelected     = false;
                active.selectedArtifactIndex = 0;
                var artifactButton =
                    GameObject.Find("Canvas").transform.Find("Buttons").Find("InventoryButton").Find("Slot").GetComponent <Image>();
                artifactButton.sprite = null;
                artifactButton.color  = Color.white;
            }
        }
        if (active.isSpellSelected)
        {
            var spell = (active.Character as Magician).SpellsList.Spells[(int)active.selectedSpellIndex];
            try {
                CastSpell(spell.Power);
            } catch (Exception ex) {
                message.Show(ex.Message);
            }
            active.isSpellSelected    = false;
            active.selectedSpellIndex = 0;
            var spellButton =
                GameObject.Find("Canvas").transform.transform.Find("Buttons").Find("SpellbookButton").Find("Slot").GetComponent <Image>();
            spellButton.sprite = null;
            spellButton.color  = Color.white;
        }
    }