public void Open(bool basicSpell, int spellNumber) { gameObject.SetActive(true); basic = basicSpell; number = spellNumber; // Get the old builder to set values on the new book ProjectileSpellBook book = null; if (basicSpell) { book = playerShoot.GetComponent <Shoot>().GetNonBasicSpell(0) as ProjectileSpellBook; } else { book = playerShoot.GetComponent <Shoot>().GetNonBasicSpell(1) as ProjectileSpellBook; } book.ReturnProj(); ProjectileSpellBookBuilder builder = book.spellBuilder; uiStuff.spellGrid.SetGrid(builder.grid.GetGrid()); // Set our builder to the new builder projSpellBookBuilder = new ProjectileSpellBookBuilder(ProjectileSpellBookBuilder.spellSource.player); // Clear and set the grid //uiStuff.spellGrid.ClearGrid (); projSpellBookBuilder.grid = uiStuff.spellGrid; if (SpellInterfaceOpened != null) { SpellInterfaceOpened(builder, projSpellBookBuilder, uiStuff.spellGrid); } }
public void SetProjectile(SpellCreationSegment seg, ProjectileSpellBook sp) { spellSeg = seg; if (pm == null) { pm = gameObject.GetComponent <ProjectileMovement>(); } pm.speed = seg.GetSpeed(); pm.turnSpeed = seg.GetTurnSpeed(); spell = sp; string[] layers = sp.layerMaskNames; foreach (Transform child in transform) { if (sp.source == ProjectileSpellBookBuilder.spellSource.enemy) { child.gameObject.layer = LayerMask.NameToLayer("ProjectileEnemy"); } else if (sp.source == ProjectileSpellBookBuilder.spellSource.player) { child.gameObject.layer = LayerMask.NameToLayer("ProjectilePlayer"); } else { child.gameObject.layer = LayerMask.NameToLayer("ProjectileNeutral"); } child.gameObject.GetComponent <MovementCheck>().layerMask = LayerMask.GetMask(layers); } }
void OnDisable() { if (current_spell == null) { return; } ProjectileSpellBook book = (ProjectileSpellBook)current_spell; book.ReturnProj(); }
void UpdateDisplay(SpellBook book) { mBook = book; string count = "∞"; if (book != null && book.chargesCurrent != -1) { ProjectileSpellBook proj = (ProjectileSpellBook)book; proj.SpellCasted += UpdateCount; count = book.chargesCurrent + " / " + book.chargesMax; } text.text = book.name + "\n " + count; gramdrawer.numPoints = (int)book.loadSize; gramdrawer.ReDrawGram(); gramdrawer.SetPointsInUse((int)(book.loadSize - (book.chargesCurrent - book.nextChargesTillReload))); }
public void Play() { ProjectileSpellBook mySpell = projSpellBookBuilder.MakeSpellBook(); Shoot shoot = playerShoot.GetComponent <Shoot>(); if (basic) { shoot.SetNonBasicSpell(mySpell, 0); } else { shoot.SetNonBasicSpell(mySpell, 1); } overWorldObject.SetActive(true); this.gameObject.SetActive(false); }
public ProjectileSpellBook MakeSpellBook() { List <SpellCreationSegment> spellSegs = GetSpellSegs(); foreach (SpellCreationSegment seg in spellSegs) { if (source != ProjectileSpellBookBuilder.spellSource.player) { seg.SetSpeedMod(seg.GetSpeedMod() * .6f); } ISpellPixel[,] pixels = grid.GetGrid(); seg.calculateValues(grid, GetDamage()); } CalculateCost(); ProjectileSpellBook spellBook = new ProjectileSpellBook(); spellBook.Init(this); return(spellBook); }