コード例 #1
0
 void Start()
 {
     rb = gameObject.GetComponent<Rigidbody> ();
     lighting = gameObject.GetComponent<Light>();
     playerObject = GameObject.Find ("Player");
     scscript = playerObject.GetComponent<SpellCaster>();
     released = false;
 }
コード例 #2
0
 //TODO: start combat here.
 public override void OnEvent(FinalBoss evnt)
 {
     BoltConsole.Write("Final Boss battle (not yet implemented so everyone dies)");
     BoltConsole.Write("Final Boss battle (not yet implemented so everyone dies)");
     PanelHolder.instance.displayNotify("Final Boss Battle", "(not yet implemented so everyone dies)", "OK");
     playerSpellcaster = playerEntity.GetComponent <Player>().spellcaster;
     playerSpellcaster.TakeDamage((int)(playerSpellcaster.fCurrentHealth));
     SpellCaster.savePlayerData(playerSpellcaster);
 }
コード例 #3
0
        public override void Cast(SpellCaster caster)
        {
            var spawn         = caster.spawn;
            var proj          = Instantiate(projectile, spawn.transform.position, spawn.transform.rotation);
            var hommingScript = proj.GetComponent <HommingProjectile>();

            hommingScript.speed  = projectileSpeed;
            hommingScript.target = caster.target.transform;
        }
コード例 #4
0
    override public void Use(SpellCaster x)
    {
        GameObject i = InstantiateSpell(x);

        if (i.TryGetComponent(out SpellInstance spellInstance))
        {
            spellInstance.Initialize(x);
        }
    }
コード例 #5
0
    public override void UseItem(SpellCaster player)
    {
        SoundManager.instance.PlaySingle(SoundManager.riftTalisman);
        player.RemoveFromInventory(this);

        CrisisHandler.instance.roundsUntilCrisis++;
        NetworkManager.s_Singleton.ModifyRoundsUntilNextCrisis(1);
        PanelHolder.instance.displayNotify("Rift Talisman", "The " + CrisisHandler.instance.currentCrisis + " will be delayed by 1 round.", "InventoryScene");
    }
コード例 #6
0
        public override void Awake()
        {
            base.Awake();
            spellCaster = this.GetComponent <SpellCaster> ();
            facingRight = false;

            Targets = new List <GameObject> ();
            Targets.Add(GameObject.FindGameObjectWithTag("Player"));
        }
コード例 #7
0
    public void CombatCast(SpellCaster player, float orbPercentage)
    {
        orbPercentage = orbPercentage * 100f;
        float multiplier = ((Mathf.Floor(orbPercentage / 20f) * 5f) + 5f) / 100f;

        //int healAmount = (int) player.fMaxHealth * multiplier;
        //player.HealDamage(healAmount);
        NetworkManager.s_Singleton.HealAllAlliesByPercent(multiplier, sSpellName);
    }
コード例 #8
0
 public void Interact(SpellCaster spellCaster)
 {
     if (_dead || owner != null)
     {
         return;
     }
     owner = spellCaster;
     spellCaster.pickUpSpell(this);
 }
コード例 #9
0
    private void Awake()
    {
        GameObject p = GameObject.FindGameObjectWithTag("LocalPlayer");

        if (p != null)
        {
            Debug.Log("Combat found local player");
            localSpellcaster = p.GetComponent <Player>().Spellcaster;
        }
        else
        {
            Debug.Log("Combat in test");
            //Tests

            /*
             *          localSpellcaster = new Summoner();
             *          localSpellcaster.chapter.spellsCollected.Add(new Skeletons()); // Pass
             *          localSpellcaster.chapter.spellsCollected.Add(new Ravenssong()); // Pass
             *          localSpellcaster.chapter.spellsCollected.Add(new Bearsfury());; // Pass
             *   localSpellcaster = new Illusionist();
             *          localSpellcaster.chapter.spellsCollected.Add(new Catharsis()); //Pass
             *          localSpellcaster.chapter.spellsCollected.Add(new Catastrophe()); // Pass
             *          localSpellcaster.chapter.spellsCollected.Add(new Tragedy()); //Pass
             *             localSpellcaster = new Chronomancer();
             *          localSpellcaster.chapter.spellsCollected.Add(new ReverseWounds()); // Pass
             *          localSpellcaster.chapter.spellsCollected.Add(new Manipulate()); //Pass
             *          localSpellcaster.chapter.spellsCollected.Add(new Chronoblast());  // Pass
             *          localSpellcaster = new Elementalist();
             *          localSpellcaster.chapter.spellsCollected.Add(new Fireball()); //Looks like ToxicPotion
             *          localSpellcaster.chapter.spellsCollected.Add(new EyeOfTheStorm());  // Looks like Bears fury, chronoblast, Natural Disaster
             *          localSpellcaster.chapter.spellsCollected.Add(new NaturalDisaster()); // Looks like Tragedy
             *         localSpellcaster = new Arcanist();
             *          localSpellcaster.chapter.spellsCollected.Add(new MarcellasBlessing()); //Looks like DistilledPotion
             *          localSpellcaster.chapter.spellsCollected.Add(new RunicDarts()); // Pass
             *          localSpellcaster.chapter.spellsCollected.Add(new Archive());  // Pass
             */
            localSpellcaster = new Alchemist();
            localSpellcaster.chapter.spellsCollected.Add(new DistilledPotion());  // Pass
            localSpellcaster.chapter.spellsCollected.Add(new PotionofBlessing()); // Needs more
            localSpellcaster.chapter.spellsCollected.Add(new ToxicPotion());      // Looks like Fireball, NaturalDisaster  /* */
        }

        InvokeRepeating("UpdateHealthBars", 0f, 1f);

        ImageScript.LinesUpdated += LinesUpdated;
        ImageScript.LinesCleared += LinesCleared;

        //Finding Pixel To World Unit Conversion Based On Orthographic Size Of Camera
        WorldUnitsInCamera.y = gameObject.GetComponent <Camera>().orthographicSize * 2;
        WorldUnitsInCamera.x = WorldUnitsInCamera.y * Screen.width / Screen.height;

        WorldToPixelAmount.x = Screen.width / WorldUnitsInCamera.x;
        WorldToPixelAmount.y = Screen.height / WorldUnitsInCamera.y;

        ResetButton.onClick.AddListener(ResetSwipe);
    }
コード例 #10
0
    public void SpellcastPhase2(int sID, SpellCaster player)
    {
        this.player = player;

        // cast spell for free if Umbra's Eclipse is active
        if (SpellTracker.instance.CheckUmbra())
        {
            if (player.spellcasterID != sID)
            {
                PanelHolder.instance.displaySpellCastNotif(sSpellName, "You and your ally will have an extra D9 next time you roll.", "MainPlayerScene");
            }

            if (player.tempDice.ContainsKey("D9"))
            {
                player.tempDice["D9"] += 1;
            }
            else
            {
                player.tempDice.Add("D9", 1);
            }

            NetworkManager.s_Singleton.CastOnAlly(player.spellcasterID, sID, sSpellName);


            player.numSpellsCastThisTurn++;
            SpellTracker.instance.lastSpellCasted = this;
        }
        else if (player.iMana < iManaCost)
        {
            PanelHolder.instance.displayNotify("Not enough Mana!", "You do not have enough mana to cast this spell.", "OK");
        }
        else
        {
            // subtract mana
            player.iMana -= iManaCost;

            if (player.spellcasterID != sID)
            {
                PanelHolder.instance.displaySpellCastNotif(sSpellName, "You and your ally will have an extra D9 next time you roll.", "MainPlayerScene");
            }

            if (player.tempDice.ContainsKey("D9"))
            {
                player.tempDice["D9"] += 1;
            }
            else
            {
                player.tempDice.Add("D9", 1);
            }

            NetworkManager.s_Singleton.CastOnAlly(player.spellcasterID, sID, sSpellName);

            player.numSpellsCastThisTurn++;
            SpellTracker.instance.lastSpellCasted = this;
        }
    }
コード例 #11
0
 public override bool CanBeCastedBy(SpellCaster caster, out string error)
 {
     if (caster.caster.unit && caster.caster.unit.currentHealth >= caster.caster.unit.maxHealth)
     {
         error = "life is already full";
         return(false);
     }
     error = "";
     return(true);
 }
コード例 #12
0
ファイル: Levitation.cs プロジェクト: Oli8t/bns-electrical
        private static void Postfix(SpellCaster __instance)
        {
            if (__instance.creature != Creature.player)
            {
                return;
            }

            TryLevitate(__instance.casterLeft);
            TryLevitate(__instance.casterRight);
        }
コード例 #13
0
    public void SpellcastPhase2(int sID, SpellCaster player)
    {
        OrbPercent = OrbPercent * 100f;
        //for every 20% the orb is filled, add 5% to the multiplier
        float multiplier = ((Mathf.Floor(OrbPercent / 20f) * 5f) + 10f) / 100f;

        // player.totalDamage += player.totalDamage * multiplier;
        NetworkManager.s_Singleton.CastOnAlly(player.spellcasterID, sID, sSpellName);
        NetworkManager.s_Singleton.IncreaseAllyDamageByPercent(sID, multiplier);
    }
コード例 #14
0
    public void CombatCast(SpellCaster player, float orbPercentage)
    {
        // for every 20% the orb is filled, add 5% to the multiplier.
        orbPercentage = orbPercentage * 100f;
        float tapBuff       = (int)Mathf.Floor(orbPercentage / 20f) * 5f;
        float totalIncrease = (tapBuff + 15f) / 100f;

        //teamTapTotal += teamTapTotal * totalIncrease;
        NetworkManager.s_Singleton.IncreaseTeamTapPercentage(totalIncrease, sSpellName);
    }
コード例 #15
0
        public override void Load(SpellCaster spellCaster, Level level)
        {
            base.Load(spellCaster, level);

            spellCaster.telekinesis.grabRagdoll = true;
            _defaultRagdollSpeed = spellCaster.telekinesis.followRagdollSpeedCurve.keys[1].value;

            //minimum is 1.0
            ModifyRagdollSpeed(Mathf.Max(1.0f, ragdollSpeedBoost));
        }
コード例 #16
0
ファイル: SpellDagger.cs プロジェクト: lyneca/daggerbending
 public override void Load(SpellCaster spellCaster)
 {
     base.Load(spellCaster);
     hasSpawnedDagger  = false;
     isSpawningHandle  = false;
     controller        = spellCaster.mana.gameObject.GetOrAddComponent <DaggerController>();
     controller.itemId = itemId;
     controller.daggersOrbitWhenIdle = daggersOrbitWhenIdle;
     isCasting = false;
 }
コード例 #17
0
 public override void Merge(bool active)
 {
     base.Merge(active);
     this.active = active;
     if (active)
     {
         daggerCaster = (mana.casterLeft.spellInstance is SpellDagger) ? mana.casterLeft : mana.casterRight;
         otherCaster  = daggerCaster.ragdollHand.otherHand.caster;
     }
 }
コード例 #18
0
    public void CombatCast(SpellCaster player, float orbPercentage)
    {
        // throw new System.NotImplementedException();
        // for every 20% the orb is filled, add 5% to the damage multiplier
        orbPercentage = orbPercentage * 100f;
        float multiplier = 5f + (int)(Mathf.Floor(orbPercentage / 20f) * 5f);

        NetworkManager.s_Singleton.IncreaseTeamDamageByPercent(multiplier / 100f, sSpellName);
        // teamOutput += teamOutput * (multiplier / 100);
    }
コード例 #19
0
    public void SpellcastPhase2(int sID, SpellCaster player)
    {
        this.player = player;
        // cast spell for free if Umbra's Eclipse is active
        if (SpellTracker.instance.CheckUmbra())
        {
            if (sID != player.spellcasterID)
            {
                NetworkManager.s_Singleton.CastOnAlly(player.spellcasterID, sID, sSpellName);
            }
            else
            {
                if (SpellTracker.instance.lastSpellCasted == null)
                {
                    PanelHolder.instance.displayNotify("No Spell was Cast", "Player has not cast any spells yet!", "OK");
                }
                else
                {
                    Spell newSpell = SpellTracker.instance.lastSpellCasted;
                    player.CollectMana(newSpell.iManaCost);
                    newSpell.SpellCast(player);
                }
            }

            player.numSpellsCastThisTurn++;
        }
        else if (player.iMana < iManaCost)
        {
            PanelHolder.instance.displayNotify("Not enough Mana!", "You don't have enough mana to cast this spell.", "OK");
        }
        else
        {
            // subtract mana
            player.iMana -= iManaCost;
            if (sID != player.spellcasterID)
            {
                NetworkManager.s_Singleton.CastOnAlly(player.spellcasterID, sID, sSpellName);
            }
            else
            {
                if (SpellTracker.instance.lastSpellCasted == null)
                {
                    PanelHolder.instance.displayNotify("No Spell was Cast", "Player has not cast any spells yet!", "OK");
                }
                else
                {
                    Spell newSpell = SpellTracker.instance.lastSpellCasted;
                    player.CollectMana(newSpell.iManaCost);
                    newSpell.SpellCast(player);
                }
            }

            player.numSpellsCastThisTurn++;
        }
    }
コード例 #20
0
 //The ally recieves this event.
 public override void OnEvent(CastOnAllyEvent evnt)
 {
     playerSpellcaster = playerEntity.GetComponent <Player>().spellcaster;
     // 8 stands for all spellcasters, the spell is targeting everyone
     if (playerSpellcaster.spellcasterID == evnt.ToSpellcaster || evnt.ToSpellcaster == 8)
     {
         //PanelHolder.instance.displayNotify(evnt.EventName, "Lose " + ((int)(evnt.PercentDmgDecimal * 100)) + "% health", "OK");
         IAllyCastable spell = (IAllyCastable)AllSpellsDict.AllSpells[evnt.Spellname];
         spell.RecieveCastFromAlly(playerSpellcaster);
     }
 }
コード例 #21
0
        // GET: SpellCaster/Edit/5
        public ActionResult Edit(int id)
        {
            var spellCaster = GetSpellCasterById(id);
            var viewModel   = new SpellCaster()
            {
                Name = spellCaster.Name,
                Id   = spellCaster.Id
            };

            return(View(viewModel));
        }
コード例 #22
0
    public override void UseItem(SpellCaster player)
    {
        SoundManager.instance.PlaySingle(SoundManager.opalAmmonite);
        player.RemoveFromInventory(this);

        int randMana = Random.Range(800, 2600);

        player.CollectMana(randMana);

        PanelHolder.instance.displayNotify("Opal Ammonite", "The Opal Ammonite granted you " + randMana + " mana!", "InventoryScene");
    }
コード例 #23
0
ファイル: Player.cs プロジェクト: Borhink/OpenProject
    private SpellCaster _spellcaster; //Class to launch spells

    void Start()
    {
        _spellcaster    = GetComponentInChildren <SpellCaster>();
        energy          = maxEnergy;
        mana            = maxMana;
        life            = maxLife;
        _movementCircle = Instantiate(movementCirclePrefab, transform);
        if (!movementDist)
        {
            _movementCircle.SetActive(!_movementCircle.activeSelf);
        }
    }
コード例 #24
0
    public void CombatCast(SpellCaster player, float orbPercentage)
    {
        orbPercentage = orbPercentage * 100f;
        float multiplier = ((Mathf.Floor(orbPercentage / 20f) * 5f) + 20f) / 100f;

        //int healAmount = (int) player.fCurrentHealth * multiplier;
        //player.HealDamage(healAmount);
        //enemy.DealDamage(healAmount / 2);
        // NetworkManager.s_Singleton.HealAllAlliesByPercent(multiplier, sSpellName);
        // NetworkManager.s_Singleton.DealPercentDmgToBoss(0.1f);
        NetworkManager.s_Singleton.Ravensong(multiplier, 0.1f);
    }
コード例 #25
0
ファイル: Door.cs プロジェクト: grantwang96/CapstoneProjMod
    // private Key myKey; // the key that unlocks this door

    public void Interact(SpellCaster spellCaster)
    {
        if (_locked)
        {
            return;
        }
        if (movement != null)
        {
            return;
        }
        movement = StartCoroutine(doorRotation());
    }
コード例 #26
0
 /*Everyone recieves this during combat*/
 public override void OnEvent(HealPercentMissingHealth evnt)
 {
     playerSpellcaster = playerEntity.GetComponent <Player>().spellcaster;
     playerSpellcaster.HealPercentMissingHP(evnt.Percent);
     //TODO: Display feedback.
     PanelHolder.instance.displaySpellCastNotif(evnt.Spellname, "All allies were healed by " + (evnt.Percent * 100) + " percent of missing health!", "OK");
     if (BoltNetwork.IsServer)
     {
         gameStateEntity.GetComponent <NetworkGameState>()
         .IncrementAttackCount();
     }
 }
コード例 #27
0
 private void Start()
 {
     brain = GetComponent <NavMeshBrain>();
     if (brain)
     {
         canFire = false;
         brain.OnTargetOnAttackRange += Enable;
         brain.OnStartChasingTarget  += Disable;
     }
     x = GetComponent <SpellCaster>();
     InvokeRepeating("UseSpell", timeInterval, timeInterval);
 }
コード例 #28
0
    public static void SpellCasterTests()
    {
        SpellCaster caster = new SpellCaster();

        GD.Print("Blank caster looks like this" + caster.ToString());

        caster = new SpellCaster(new List <Item.Types> {
            Item.Types.Crossbow, Item.Types.Spear, Item.Types.Knife
        });

        GD.Print("Caster with three spells looks like this." + caster.ToString());
    }
コード例 #29
0
    public void RecieveCastFromAlly(SpellCaster player)
    {
        foreach (Spell s in player.chapter.spellsCollected)
        {
            if (s.combatSpell)
            {
                ++s.iCharges;
            }
        }

        PanelHolder.instance.displaySpellCastNotif("Leon's Shining", "You gained a charge in all your combat spells!", "MainPlayerScene");
    }
コード例 #30
0
 public void RecieveCastFromAlly(SpellCaster player)
 {
     PanelHolder.instance.displaySpellCastNotif(sSpellName, "You and your ally will have an extra D9 next time you roll.", "MainPlayerScene");
     if (player.tempDice.ContainsKey("D9"))
     {
         player.tempDice["D9"] += 1;
     }
     else
     {
         player.tempDice.Add("D9", 1);
     }
 }
コード例 #31
0
 void SetDescription(SpellCaster caster)
 {
     if (!caster)
     {
         txtDescription.text = "";
     }
     else
     {
         txtDescription.text = "<size=20>" + caster.name + "</size>\n" +
                               caster.info;
     }
 }
コード例 #32
0
	// Use this for initialization
	public override void Start ()
    {
		base.Start ();
		sprite_renderer = this.GetComponent<SpriteRenderer> ();

		//Initialize caster component
		caster = this.GetComponent<SpellCaster> ();
		caster.Initialize(this, new Spell[4], mana);

		//Initialize AttributeManager
		attributes = this.GetComponent<AttributeManager>();
		attributes.AssignSkillpoints (5);
	}
コード例 #33
0
	// Use this for initialization
	void Start () {
		spelCaster = GameObject.FindObjectOfType<SpellCaster> ();
		ritualScript = GameObject.FindObjectOfType<RitualScript> ();
	
	}
コード例 #34
0
ファイル: UnitEntity.cs プロジェクト: ddionisio/1GAM_01_Aries
    protected override void Awake()
    {
        base.Awake();

        mStats = GetComponentInChildren<UnitStat>();
        mFlockUnit = GetComponentInChildren<FlockUnit>();
        mListener = GetComponentInChildren<ActionListener>();
        mActTarget = GetComponentInChildren<ActionTarget>();
        mSpriteControl = GetComponentInChildren<UnitSpriteController>();
        mWeapon = GetComponentInChildren<Weapon>();
        mSpellCaster = GetComponentInChildren<SpellCaster>();

        //hook calls up
        mStats.statChangeCallback += OnStatChange;

        if(mFlockUnit != null) {
            mFlockUnit.groupMoveEnabled = false;
        }

        if(mListener != null) {
            mListener.enterCallback += OnActionEnter;
            mListener.hitEnterCallback += OnActionHitEnter;
            mListener.hitExitCallback += OnActionHitExit;
            mListener.finishCallback += OnActionFinish;
        }
    }
コード例 #35
0
 void Start()
 {
     instance = this;
 }