Made spell books have a color associated with them, and have it where this is now a particle effect system. Needs to be ported to it's own Sun Drop Mod
This commit is contained in:
parent
da0edd662a
commit
2a76f772f9
|
@ -0,0 +1,131 @@
|
|||
using Microsoft.Xna.Framework;
|
||||
using Microsoft.Xna.Framework.Graphics;
|
||||
using StardewModdingAPI;
|
||||
using StardewValley;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Revitalize.Aesthetics
|
||||
{
|
||||
|
||||
|
||||
|
||||
public class WeatherDebrisPlus
|
||||
{
|
||||
|
||||
|
||||
|
||||
public Rectangle sourceRect;
|
||||
|
||||
public bool blowing;
|
||||
private Vector2 position;
|
||||
private int which;
|
||||
private float dx;
|
||||
private float dy;
|
||||
private int animationIntervalOffset;
|
||||
|
||||
public WeatherDebrisPlus(Vector2 position,Rectangle SourceRect, int animationOffset, int which, float rotationVelocity, float dx, float dy)
|
||||
{
|
||||
this.position = position;
|
||||
this.which = which;
|
||||
this.dx = dx;
|
||||
this.dy = dy;
|
||||
sourceRect = SourceRect;
|
||||
animationIntervalOffset = animationOffset;
|
||||
}
|
||||
|
||||
public WeatherDebrisPlus(Vector2 position, Rectangle SourceRect, int animationOffset, int which, float rotationVelocity, float dx, float dy,bool yup)
|
||||
{
|
||||
this.position = position;
|
||||
this.which = which;
|
||||
this.dx = dx;
|
||||
this.dy = dy;
|
||||
// sourceRect = SourceRect;
|
||||
animationIntervalOffset = animationOffset;
|
||||
|
||||
Log.AsyncC(this.dx);
|
||||
Log.AsyncC(this.dy);
|
||||
|
||||
switch (which)
|
||||
{
|
||||
case 0:
|
||||
this.sourceRect = new Rectangle(352, 1184, 16, 16);
|
||||
this.animationIntervalOffset = (Game1.random.Next(25) - 12) * 2;
|
||||
return;
|
||||
case 1:
|
||||
this.sourceRect = new Rectangle(352, 1200, 16, 16);
|
||||
this.animationIntervalOffset = (Game1.random.Next(25) - 12) * 2;
|
||||
return;
|
||||
case 2:
|
||||
this.sourceRect = new Rectangle(352, 1216, 16, 16);
|
||||
this.animationIntervalOffset = (Game1.random.Next(25) - 12) * 2;
|
||||
return;
|
||||
case 3:
|
||||
this.sourceRect = new Rectangle(391 + 4 * Game1.random.Next(5), 1236, 4, 4);
|
||||
return;
|
||||
case 4:
|
||||
this.sourceRect = new Rectangle(338, 400, 8, 8);
|
||||
return;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public new void update()
|
||||
{
|
||||
this.update(false);
|
||||
}
|
||||
|
||||
public new void update(bool slow)
|
||||
{
|
||||
this.position.X = this.position.X + (this.dx + (slow ? 0f : WeatherDebris.globalWind));
|
||||
this.position.Y = this.position.Y + (this.dy - (slow ? 0f : -0.5f));
|
||||
if (this.dy < 0f && !this.blowing)
|
||||
{
|
||||
this.dy += 0.01f;
|
||||
}
|
||||
if (!Game1.fadeToBlack && Game1.fadeToBlackAlpha <= 0f)
|
||||
{
|
||||
if (this.position.X < (float)(-(float)Game1.tileSize - Game1.tileSize / 4))
|
||||
{
|
||||
this.position.X = (float)Game1.viewport.Width;
|
||||
this.position.Y = (float)Game1.random.Next(0, Game1.viewport.Height - Game1.tileSize);
|
||||
}
|
||||
if (this.position.Y > (float)(Game1.viewport.Height + Game1.tileSize / 4))
|
||||
{
|
||||
this.position.X = (float)Game1.random.Next(0, Game1.viewport.Width);
|
||||
this.position.Y = (float)(-(float)Game1.tileSize);
|
||||
this.dy = (float)Game1.random.Next(-15, 10) / (slow ? ((Game1.random.NextDouble() < 0.1) ? 5f : 200f) : 50f);
|
||||
this.dx = (float)Game1.random.Next(-10, 0) / (slow ? 200f : 50f);
|
||||
}
|
||||
else if (this.position.Y < (float)(-(float)Game1.tileSize))
|
||||
{
|
||||
this.position.Y = (float)Game1.viewport.Height;
|
||||
this.position.X = (float)Game1.random.Next(0, Game1.viewport.Width);
|
||||
}
|
||||
}
|
||||
if (this.blowing)
|
||||
{
|
||||
this.dy -= 0.01f;
|
||||
if (Game1.random.NextDouble() < 0.006 || this.dy < -2f)
|
||||
{
|
||||
this.blowing = false;
|
||||
}
|
||||
}
|
||||
else if (!slow && Game1.random.NextDouble() < 0.001 && Game1.currentSeason != null && (Game1.currentSeason.Equals("spring") || Game1.currentSeason.Equals("summer")))
|
||||
{
|
||||
this.blowing = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void draw(SpriteBatch b)
|
||||
{
|
||||
b.Draw(Game1.mouseCursors, this.position, new Rectangle?(this.sourceRect), Color.White, 0f, Vector2.Zero, 3f, SpriteEffects.None, 1E-06f);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -25,6 +25,7 @@ using Microsoft.Xna.Framework.Input;
|
|||
using xTile;
|
||||
using Revitalize.Persistance;
|
||||
using Revitalize.Draw;
|
||||
using Revitalize.Aesthetics;
|
||||
|
||||
namespace Revitalize
|
||||
{
|
||||
|
@ -77,6 +78,8 @@ namespace Revitalize
|
|||
StardewModdingAPI.Events.GameEvents.UpdateTick += GameEvents_UpdateTick;
|
||||
|
||||
StardewModdingAPI.Events.GraphicsEvents.OnPreRenderHudEvent += GraphicsEvents_OnPreRenderHudEvent;
|
||||
|
||||
StardewModdingAPI.Events.GraphicsEvents.OnPostRenderHudEvent += draw;
|
||||
|
||||
|
||||
//StardewModdingAPI.Events.TimeEvents.DayOfMonthChanged += Util.WaterAllCropsInAllLocations;
|
||||
|
@ -89,6 +92,14 @@ namespace Revitalize
|
|||
Log.AsyncG("Revitalize: Running on API Version: " +StardewModdingAPI.Constants.ApiVersion);
|
||||
}
|
||||
|
||||
private void draw(object sender, EventArgs e)
|
||||
{
|
||||
foreach(WeatherDebrisPlus w in Lists.thisWeatherDebris)
|
||||
{
|
||||
w.draw(Game1.spriteBatch);
|
||||
}
|
||||
}
|
||||
|
||||
private void GraphicsEvents_OnPreRenderHudEvent(object sender, EventArgs e)
|
||||
{
|
||||
if (gameLoaded == true)
|
||||
|
@ -130,6 +141,12 @@ namespace Revitalize
|
|||
Lists.loadAllLists();
|
||||
Util.WaterAllCropsInAllLocations();
|
||||
}
|
||||
foreach(WeatherDebrisPlus w in Lists.thisWeatherDebris)
|
||||
{
|
||||
// Log.AsyncM("COUNT" + Lists.thisWeatherDebris.Count);
|
||||
w.update();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -296,7 +313,9 @@ namespace Revitalize
|
|||
objShopList.Add(new StardewValley.Object(497, 1));
|
||||
objShopList.Add(new StardewValley.Object(498, 1));
|
||||
objShopList.Add(new StardewValley.Object(770, 1));
|
||||
objShopList.Add(new Spell(0, Vector2.Zero, new Resources.DataNodes.SpellFunctionDataNode(new Spell.spellFunction(Magic.MagicFunctions.showRedMessage),1)));
|
||||
Spell k;
|
||||
Dictionaries.spellList.TryGetValue(0, out k);
|
||||
objShopList.Add(k);
|
||||
foreach (var v in objShopList)
|
||||
{
|
||||
newInventory.Add(v);
|
||||
|
@ -334,13 +353,30 @@ namespace Revitalize
|
|||
|
||||
if (e.KeyPressed.ToString() == "V")
|
||||
{
|
||||
// Game1.showEndOfNightStuff();
|
||||
Magic.MagicMonitor.consumeMagic(5);
|
||||
newDebris();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void newDebris()
|
||||
{
|
||||
// Game1.debrisWeather.Add(new WeatherDebris(new Vector2((float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Width), (float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Height)), 0, (float)Game1.random.Next(15) / 500f, (float)Game1.random.Next(-10, 0) / 50f, (float)Game1.random.Next(10) / 50f));
|
||||
// Game1.debrisWeather.Add(new WeatherDebrisPlus(new Vector2((float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Width), (float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Height)), new Rectangle(338, 400, 8, 8),0,999, (float)Game1.random.Next(15) / 500f, (float)Game1.random.Next(-10, 0) / 50f, (float)Game1.random.Next(10) / 50f));
|
||||
// WeatherDebris w = new WeatherDebris();
|
||||
// Game1.debrisWeather.Add(new WeatherDebris(new Vector2((float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Width), (float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Height)), 0, (float)Game1.random.Next(15) / 500f, (float)Game1.random.Next(-10, 0) / 50f, (float)Game1.random.Next(10) / 50f));
|
||||
// WeatherDebris w = new WeatherDebris(new Vector2((float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Width), (float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Height)), 0, (float)Game1.random.Next(15) / 500f, (float)Game1.random.Next(-10, 0) / 50f, (float)Game1.random.Next(10) / 50f);
|
||||
WeatherDebrisPlus w= new WeatherDebrisPlus(new Vector2((float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Width), (float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Height)), new Rectangle(338, 400, 8, 8), 0, 4, (float)Game1.random.Next(15) / 500f, (float)Game1.random.Next(-10, 0) / 50f, (float)Game1.random.Next(10) / 50f,true);
|
||||
|
||||
Lists.thisWeatherDebris.Add(w);
|
||||
|
||||
Game1.isDebrisWeather = true;
|
||||
// Game1.updateDebrisWeatherForMovement(Game1.debrisWeather);
|
||||
// Game1.windGust = 0.15f;
|
||||
Log.AsyncC("WIND");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,8 @@ namespace Revitalize.Objects
|
|||
public int spellCostModifierInt;
|
||||
public float spellCostModifierPercent;
|
||||
|
||||
|
||||
public Color bookColor;
|
||||
public int spellIndex;
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
|
@ -48,6 +49,7 @@ namespace Revitalize.Objects
|
|||
lightsOn = false;
|
||||
lightColor = Color.Black;
|
||||
thisType = this.GetType();
|
||||
|
||||
}
|
||||
|
||||
public Spell()
|
||||
|
@ -56,10 +58,11 @@ namespace Revitalize.Objects
|
|||
}
|
||||
|
||||
|
||||
public Spell(int which, Vector2 Tile, SpellFunctionDataNode spellFunction, int InventoryMaxSize = 0, bool isRemovable = true)
|
||||
public Spell(int which,Vector2 Tile, SpellFunctionDataNode spellFunction, Color tomeColor,int textureIndex=0, int InventoryMaxSize = 0, bool isRemovable = true)
|
||||
{
|
||||
InitializeBasics(InventoryMaxSize, Tile);
|
||||
|
||||
spellIndex = which;
|
||||
bookColor = tomeColor;
|
||||
magicToCast.Add(spellFunction);
|
||||
removable = isRemovable;
|
||||
this.lightColor = Color.Black;
|
||||
|
@ -117,7 +120,7 @@ namespace Revitalize.Objects
|
|||
this.updateDrawPosition();
|
||||
this.rotations = Convert.ToInt32(array[4]);
|
||||
this.price = Convert.ToInt32(array[5]);
|
||||
this.parentSheetIndex = which;
|
||||
this.parentSheetIndex = textureIndex ;
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -135,9 +138,10 @@ namespace Revitalize.Objects
|
|||
|
||||
}
|
||||
|
||||
public Spell(int which, Vector2 Tile, List<SpellFunctionDataNode> spellFunctions, int InventoryMaxSize = 0, bool isRemovable = true)
|
||||
public Spell(int which, Vector2 Tile, List<SpellFunctionDataNode> spellFunctions,Color tomeColor,int textureIndex=0, int InventoryMaxSize = 0, bool isRemovable = true)
|
||||
{
|
||||
|
||||
bookColor = tomeColor;
|
||||
spellIndex = which;
|
||||
InitializeBasics(InventoryMaxSize, Tile);
|
||||
|
||||
foreach(var v in spellFunctions) {
|
||||
|
@ -200,7 +204,7 @@ namespace Revitalize.Objects
|
|||
this.updateDrawPosition();
|
||||
this.rotations = Convert.ToInt32(array[4]);
|
||||
this.price = Convert.ToInt32(array[5]);
|
||||
this.parentSheetIndex = which;
|
||||
this.parentSheetIndex = textureIndex;
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -276,25 +280,18 @@ namespace Revitalize.Objects
|
|||
//DONT USE THIS BASE IT IS TERRIBLE
|
||||
public override bool clicked(Farmer who)
|
||||
{
|
||||
// castMagic();
|
||||
// Game1.showRedMessage("THIS IS CLICKED!!!");
|
||||
//var mState = Microsoft.Xna.Framework.Input.Mouse.GetState();
|
||||
|
||||
|
||||
if (removable == false) return false;
|
||||
|
||||
|
||||
Game1.haltAfterCheck = false;
|
||||
if (this.Decoration_type == 11 && who.ActiveObject != null && who.ActiveObject != null && this.heldObject == null)
|
||||
{
|
||||
// Game1.showRedMessage("Why1?");
|
||||
|
||||
return false;
|
||||
}
|
||||
if (this.heldObject == null && (who.ActiveObject == null || !(who.ActiveObject is Spell)))
|
||||
{
|
||||
if (Game1.player.currentLocation is FarmHouse)
|
||||
{
|
||||
//
|
||||
|
||||
Util.addItemToInventoryAndCleanTrackedList(this);
|
||||
removeLights(this.thisLocation);
|
||||
this.lightsOn = false;
|
||||
|
@ -305,8 +302,6 @@ namespace Revitalize.Objects
|
|||
}
|
||||
else
|
||||
{
|
||||
// return true;
|
||||
// this.heldObject = new Spell(parentSheetIndex, Vector2.Zero, this.lightColor, this.inventoryMaxSize);
|
||||
Util.addItemToInventoryAndCleanTrackedList(this);
|
||||
removeLights(this.thisLocation);
|
||||
this.lightsOn = false;
|
||||
|
@ -318,8 +313,6 @@ namespace Revitalize.Objects
|
|||
}
|
||||
if (this.heldObject != null && who.addItemToInventoryBool(this.heldObject, false))
|
||||
{
|
||||
// Game1.showRedMessage("Why3?");
|
||||
// if(this.heldObject!=null) Game1.player.addItemByMenuIfNecessary((Item)this.heldObject);
|
||||
Util.addItemToInventoryAndCleanTrackedList(this);
|
||||
this.heldObject.performRemoveAction(this.tileLocation, who.currentLocation);
|
||||
this.heldObject = null;
|
||||
|
@ -330,64 +323,12 @@ namespace Revitalize.Objects
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual bool RightClicked(Farmer who)
|
||||
{
|
||||
|
||||
// castMagic();
|
||||
// Game1.showRedMessage("THIS IS CLICKED!!!");
|
||||
//var mState = Microsoft.Xna.Framework.Input.Mouse.GetState();
|
||||
/*
|
||||
|
||||
Game1.haltAfterCheck = false;
|
||||
if (this.Decoration_type == 11 && who.ActiveObject != null && who.ActiveObject != null && this.heldObject == null)
|
||||
{
|
||||
// Game1.showRedMessage("Why1?");
|
||||
return false;
|
||||
}
|
||||
if (this.heldObject == null && (who.ActiveObject == null || !(who.ActiveObject is Spell)))
|
||||
{
|
||||
if (Game1.player.currentLocation is FarmHouse)
|
||||
{
|
||||
//
|
||||
Game1.player.addItemByMenuIfNecessary(this);
|
||||
removeLights(this.thisLocation);
|
||||
this.lightsOn = false;
|
||||
Game1.playSound("coin");
|
||||
// this.flaggedForPickUp = true;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// return true;
|
||||
// this.heldObject = new Spell(parentSheetIndex, Vector2.Zero, this.lightColor, this.inventoryMaxSize);
|
||||
Game1.player.addItemByMenuIfNecessary(this);
|
||||
removeLights(this.thisLocation);
|
||||
this.lightsOn = false;
|
||||
Game1.playSound("coin");
|
||||
return true;
|
||||
|
||||
}
|
||||
}
|
||||
if (this.heldObject != null && who.addItemToInventoryBool(this.heldObject, false))
|
||||
{
|
||||
// Game1.showRedMessage("Why3?");
|
||||
// if(this.heldObject!=null) Game1.player.addItemByMenuIfNecessary((Item)this.heldObject);
|
||||
Util.addItemToInventoryElseDrop(this);
|
||||
this.heldObject.performRemoveAction(this.tileLocation, who.currentLocation);
|
||||
this.heldObject = null;
|
||||
Game1.playSound("coin");
|
||||
removeLights(this.thisLocation);
|
||||
this.lightsOn = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1056,7 +997,7 @@ namespace Revitalize.Objects
|
|||
|
||||
public override void drawWhenHeld(SpriteBatch spriteBatch, Vector2 objectPosition, Farmer f)
|
||||
{
|
||||
spriteBatch.Draw(this.TextureSheet, objectPosition, new Microsoft.Xna.Framework.Rectangle?(Game1.currentLocation.getSourceRectForObject(f.ActiveObject.ParentSheetIndex)), Color.White, 0f, Vector2.Zero, (float)Game1.pixelZoom, SpriteEffects.None, Math.Max(0f, (float)(f.getStandingY() + 2) / 10000f));
|
||||
spriteBatch.Draw(this.TextureSheet, objectPosition, new Microsoft.Xna.Framework.Rectangle?(Game1.currentLocation.getSourceRectForObject(f.ActiveObject.ParentSheetIndex)), this.bookColor, 0f, Vector2.Zero, (float)Game1.pixelZoom, SpriteEffects.None, Math.Max(0f, (float)(f.getStandingY() + 2) / 10000f));
|
||||
if (f.ActiveObject != null && f.ActiveObject.Name.Contains("="))
|
||||
{
|
||||
spriteBatch.Draw(Game1.objectSpriteSheet, objectPosition + new Vector2((float)(Game1.tileSize / 2), (float)(Game1.tileSize / 2)), new Microsoft.Xna.Framework.Rectangle?(Game1.currentLocation.getSourceRectForObject(f.ActiveObject.ParentSheetIndex)), Color.White, 0f, new Vector2((float)(Game1.tileSize / 2), (float)(Game1.tileSize / 2)), (float)Game1.pixelZoom + Math.Abs(Game1.starCropShimmerPause) / 8f, SpriteEffects.None, Math.Max(0f, (float)(f.getStandingY() + 2) / 10000f));
|
||||
|
@ -1074,18 +1015,19 @@ namespace Revitalize.Objects
|
|||
|
||||
public override void drawInMenu(SpriteBatch spriteBatch, Vector2 location, float scaleSize, float transparency, float layerDepth, bool drawStackNumber)
|
||||
{
|
||||
spriteBatch.Draw(TextureSheet, location + new Vector2((float)(Game1.tileSize / 2), (float)(Game1.tileSize / 2)), new Rectangle?(this.defaultSourceRect), Color.White * transparency, 0f, new Vector2((float)(this.defaultSourceRect.Width / 2), (float)(this.defaultSourceRect.Height / 2)), 1f * this.getScaleSize() * scaleSize, SpriteEffects.None, layerDepth);
|
||||
|
||||
spriteBatch.Draw(TextureSheet, location + new Vector2((float)(Game1.tileSize / 2), (float)(Game1.tileSize / 2)), new Rectangle?(this.defaultSourceRect),this.bookColor, 0f, new Vector2((float)(this.defaultSourceRect.Width / 2), (float)(this.defaultSourceRect.Height / 2)), 1f * this.getScaleSize() * scaleSize, SpriteEffects.None, layerDepth);
|
||||
}
|
||||
|
||||
public override void draw(SpriteBatch spriteBatch, int x, int y, float alpha = 1f)
|
||||
{
|
||||
if (x == -1)
|
||||
{
|
||||
spriteBatch.Draw(TextureSheet, Game1.GlobalToLocal(Game1.viewport, this.drawPosition), new Rectangle?(this.sourceRect), Color.White * alpha, 0f, Vector2.Zero, (float)Game1.pixelZoom, this.flipped ? SpriteEffects.FlipHorizontally : SpriteEffects.None, (this.Decoration_type == 12) ? 0f : ((float)(this.boundingBox.Bottom - 8) / 10000f));
|
||||
spriteBatch.Draw(TextureSheet, Game1.GlobalToLocal(Game1.viewport, this.drawPosition), new Rectangle?(this.sourceRect), this.bookColor * alpha, 0f, Vector2.Zero, (float)Game1.pixelZoom, this.flipped ? SpriteEffects.FlipHorizontally : SpriteEffects.None, (this.Decoration_type == 12) ? 0f : ((float)(this.boundingBox.Bottom - 8) / 10000f));
|
||||
}
|
||||
else
|
||||
{
|
||||
spriteBatch.Draw(TextureSheet, Game1.GlobalToLocal(Game1.viewport, new Vector2((float)(x * Game1.tileSize), (float)(y * Game1.tileSize - (this.sourceRect.Height * Game1.pixelZoom - this.boundingBox.Height)))), new Rectangle?(this.sourceRect), Color.White * alpha, 0f, Vector2.Zero, (float)Game1.pixelZoom, this.flipped ? SpriteEffects.FlipHorizontally : SpriteEffects.None, (this.Decoration_type == 12) ? 0f : ((float)(this.boundingBox.Bottom - 8) / 10000f));
|
||||
spriteBatch.Draw(TextureSheet, Game1.GlobalToLocal(Game1.viewport, new Vector2((float)(x * Game1.tileSize), (float)(y * Game1.tileSize - (this.sourceRect.Height * Game1.pixelZoom - this.boundingBox.Height)))), new Rectangle?(this.sourceRect), this.bookColor * alpha, 0f, Vector2.Zero, (float)Game1.pixelZoom, this.flipped ? SpriteEffects.FlipHorizontally : SpriteEffects.None, (this.Decoration_type == 12) ? 0f : ((float)(this.boundingBox.Bottom - 8) / 10000f));
|
||||
}
|
||||
if (this.heldObject != null)
|
||||
{
|
||||
|
@ -1094,19 +1036,20 @@ namespace Revitalize.Objects
|
|||
(this.heldObject as Spell).drawAtNonTileSpot(spriteBatch, Game1.GlobalToLocal(Game1.viewport, new Vector2((float)(this.boundingBox.Center.X - Game1.tileSize / 2), (float)(this.boundingBox.Center.Y - (this.heldObject as Spell).sourceRect.Height * Game1.pixelZoom - Game1.tileSize / 4))), (float)(this.boundingBox.Bottom - 7) / 10000f, alpha);
|
||||
return;
|
||||
}
|
||||
spriteBatch.Draw(Game1.shadowTexture, Game1.GlobalToLocal(Game1.viewport, new Vector2((float)(this.boundingBox.Center.X - Game1.tileSize / 2), (float)(this.boundingBox.Center.Y - Game1.tileSize * 4 / 3))) + new Vector2((float)(Game1.tileSize / 2), (float)(Game1.tileSize * 5 / 6)), new Rectangle?(Game1.shadowTexture.Bounds), Color.White * alpha, 0f, new Vector2((float)Game1.shadowTexture.Bounds.Center.X, (float)Game1.shadowTexture.Bounds.Center.Y), 4f, SpriteEffects.None, (float)this.boundingBox.Bottom / 10000f);
|
||||
spriteBatch.Draw(Game1.objectSpriteSheet, Game1.GlobalToLocal(Game1.viewport, new Vector2((float)(this.boundingBox.Center.X - Game1.tileSize / 2), (float)(this.boundingBox.Center.Y - Game1.tileSize * 4 / 3))), new Rectangle?(Game1.currentLocation.getSourceRectForObject(this.heldObject.ParentSheetIndex)), Color.White * alpha, 0f, Vector2.Zero, (float)Game1.pixelZoom, SpriteEffects.None, (float)(this.boundingBox.Bottom + 1) / 10000f);
|
||||
spriteBatch.Draw(Game1.shadowTexture, Game1.GlobalToLocal(Game1.viewport, new Vector2((float)(this.boundingBox.Center.X - Game1.tileSize / 2), (float)(this.boundingBox.Center.Y - Game1.tileSize * 4 / 3))) + new Vector2((float)(Game1.tileSize / 2), (float)(Game1.tileSize * 5 / 6)), new Rectangle?(Game1.shadowTexture.Bounds), this.bookColor * alpha, 0f, new Vector2((float)Game1.shadowTexture.Bounds.Center.X, (float)Game1.shadowTexture.Bounds.Center.Y), 4f, SpriteEffects.None, (float)this.boundingBox.Bottom / 10000f);
|
||||
spriteBatch.Draw(Game1.objectSpriteSheet, Game1.GlobalToLocal(Game1.viewport, new Vector2((float)(this.boundingBox.Center.X - Game1.tileSize / 2), (float)(this.boundingBox.Center.Y - Game1.tileSize * 4 / 3))), new Rectangle?(Game1.currentLocation.getSourceRectForObject(this.heldObject.ParentSheetIndex)), this.bookColor * alpha, 0f, Vector2.Zero, (float)Game1.pixelZoom, SpriteEffects.None, (float)(this.boundingBox.Bottom + 1) / 10000f);
|
||||
}
|
||||
}
|
||||
|
||||
public override void drawAtNonTileSpot(SpriteBatch spriteBatch, Vector2 location, float layerDepth, float alpha = 1f)
|
||||
{
|
||||
spriteBatch.Draw(TextureSheet, location, new Rectangle?(this.sourceRect), Color.White * alpha, 0f, Vector2.Zero, (float)Game1.pixelZoom, this.flipped ? SpriteEffects.FlipHorizontally : SpriteEffects.None, layerDepth);
|
||||
spriteBatch.Draw(TextureSheet, location, new Rectangle?(this.sourceRect), this.bookColor * alpha, 0f, Vector2.Zero, (float)Game1.pixelZoom, this.flipped ? SpriteEffects.FlipHorizontally : SpriteEffects.None, layerDepth);
|
||||
}
|
||||
|
||||
public override Item getOne()
|
||||
{
|
||||
Spell Spell = new Spell(this.parentSheetIndex, this.tileLocation, magicToCast , this.inventoryMaxSize);
|
||||
Spell Spell = new Spell(this.spellIndex, this.tileLocation, magicToCast ,this.bookColor, this.parentSheetIndex);
|
||||
Log.AsyncG(this.bookColor);
|
||||
/*
|
||||
drawPosition = this.drawPosition;
|
||||
defaultBoundingBox = this.defaultBoundingBox;
|
||||
|
|
|
@ -27,6 +27,8 @@ namespace Revitalize.Resources
|
|||
public static Dictionary<string, SeedDataNode> seedList;
|
||||
public static Dictionary<int, Spell> spellList;
|
||||
|
||||
public static Dictionary<string, WeatherDebris> weatherDebrisDictionary;
|
||||
|
||||
public static void initializeDictionaries()
|
||||
{
|
||||
acceptedTypes = new Dictionary<string, SerializerDataNode>();
|
||||
|
@ -34,6 +36,7 @@ namespace Revitalize.Resources
|
|||
interactionTypes = new Dictionary<string, interactFunction>();
|
||||
seedList = new Dictionary<string, SeedDataNode>();
|
||||
spellList = new Dictionary<int, Spell>();
|
||||
weatherDebrisDictionary = new Dictionary<string, WeatherDebris>();
|
||||
fillAllDictionaries();
|
||||
}
|
||||
|
||||
|
@ -44,6 +47,7 @@ namespace Revitalize.Resources
|
|||
fillQuaryList();
|
||||
fillSeedList();
|
||||
fillSpellList();
|
||||
fillWeatherDebrisList();
|
||||
}
|
||||
|
||||
|
||||
|
@ -96,15 +100,22 @@ namespace Revitalize.Resources
|
|||
|
||||
Spell book;
|
||||
//add in a single spell book to my system
|
||||
book = new Spell(0, Vector2.Zero, new SpellFunctionDataNode(null,1));
|
||||
book = new Spell(0, Vector2.Zero, new SpellFunctionDataNode(null,1),Color.Aqua,0);
|
||||
book.magicToCast.Clear();
|
||||
book.magicToCast.Add(new SpellFunctionDataNode(new Spell.spellFunction(Magic.MagicFunctions.showRedMessage), 1));
|
||||
spellList.Add(book.parentSheetIndex, book);
|
||||
spellList.Add(0, book);
|
||||
//finish adding in a single spell book
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void fillWeatherDebrisList()
|
||||
{
|
||||
WeatherDebris w = new WeatherDebris(new Vector2((float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Width), (float)Game1.random.Next(0, Game1.graphics.GraphicsDevice.Viewport.Height)), 0, (float)Game1.random.Next(15) / 500f, (float)Game1.random.Next(-10, 0) / 50f, (float)Game1.random.Next(10) / 50f);
|
||||
weatherDebrisDictionary.Add("Pink Flower Petal", w);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using StardewModdingAPI;
|
||||
using Revitalize.Aesthetics;
|
||||
using StardewModdingAPI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
@ -15,11 +16,14 @@ namespace Revitalize.Resources
|
|||
|
||||
public static List<Revitalize.CoreObject> trackedObjectList;
|
||||
|
||||
public static List<WeatherDebrisPlus> thisWeatherDebris;
|
||||
|
||||
public static void initializeAllLists()
|
||||
{
|
||||
trackedTerrainFeatures = new List<DataNodes.TrackedTerrainDataNode>();
|
||||
trackedTerrainFeaturesDummyList = new List<DataNodes.TrackedTerrainDummyDataNode>();
|
||||
trackedObjectList = new List<CoreObject>();
|
||||
thisWeatherDebris = new List<WeatherDebrisPlus>();
|
||||
}
|
||||
|
||||
public static void loadAllLists()
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Aesthetics\WeatherDebrisPlus.cs" />
|
||||
<Compile Include="Class1.cs" />
|
||||
<Compile Include="CoreObject.cs" />
|
||||
<Compile Include="Draw\ThingsToDraw.cs" />
|
||||
|
|
|
@ -766,9 +766,9 @@ namespace Revitalize
|
|||
|
||||
dynamic obj = JObject.Parse(data);
|
||||
Spell d = new Spell();
|
||||
d.parentSheetIndex = obj.parentSheetIndex;
|
||||
d.spellIndex = obj.spellIndex;
|
||||
Spell spell = new Spell();
|
||||
bool b = Dictionaries.spellList.TryGetValue(d.parentSheetIndex, out spell);
|
||||
bool b = Dictionaries.spellList.TryGetValue(d.spellIndex, out spell);
|
||||
|
||||
Spell k =(Spell) spell.getOne();
|
||||
if (b == true) return k;
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
Loading…
Reference in New Issue