protected override void LoadAnimationSprites(THSharpSkinElement textures) { base.LoadAnimationSprites(textures); RightSprite.Texture = textures.GetSkinTextureElement(CharacterName + "Right"); KiaiRightSprite.Texture = textures.GetSkinTextureElement(CharacterName + "KiaiRight"); }
protected override void LoadAnimationSprites(THSharpSkinElement textures) { SoulContainer.Alpha = 0; KiaiContainer.Alpha = 1; KiaiLeftSprite.Alpha = 0; KiaiRightSprite.Alpha = 0; KiaiStillSprite.Alpha = 1; KiaiStillSprite.Texture = textures.GetSkinTextureElement(CharacterName + " Kiai"); Size = new Vector2(128); }
public static void ReloadGamemodes(THSharpSkinElement textures, Storage storage) { foreach (Gamemode g in LoadedGamemodes) { OnGamemodeRemoved?.Invoke(g); } LoadedGamemodes = new List <Gamemode>(); loadedAssemblies = new Dictionary <Assembly, Type>(); foreach (string file in Directory.GetFiles(Environment.CurrentDirectory, $"{gamemode_prefix}.*.dll")) { var filename = Path.GetFileNameWithoutExtension(file); if (loadedAssemblies.Values.Any(t => t.Namespace == filename)) { return; } try { var assembly = Assembly.LoadFrom(file); loadedAssemblies[assembly] = assembly.GetTypes().First(t => t.IsPublic && t.IsSubclassOf(typeof(Gamemode))); } catch (Exception) { Logger.Log("Error loading a gamemode!", LoggingTarget.Runtime, LogLevel.Error); } } var instances = loadedAssemblies.Values.Select(g => (Gamemode)Activator.CreateInstance(g)).ToList(); //add all official modes in order foreach (Gamemode g in instances.Where(g => g.OfficialID != null).OrderBy(g => g.OfficialID)) { Logger.Log("Successfully loaded official gamemode: " + g.Name); LoadedGamemodes.Add(g); g.LoadDependencies(textures, storage); OnGamemodeAdd?.Invoke(g); } //add any other modes foreach (Gamemode g in instances.Where(g => g.OfficialID == null)) { Logger.Log("Successfully loaded un-official gamemode: " + g.Name); LoadedGamemodes.Add(g); g.LoadDependencies(textures, storage); OnGamemodeAdd?.Invoke(g); } }
public override void SetHost(GameHost host) { if (THSharpConfigManager == null) { THSharpConfigManager = new THSharpConfigManager(host.Storage); } if (THSharpSkinElement == null) { THSharpSkinElement = new THSharpSkinElement(host.Storage, THSharpConfigManager); } base.SetHost(host); }
private void load(THSharpSkinElement textures) { Children = new Drawable[] { new Sprite { Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(Size.X + Size.X / 3.5f), Texture = textures.GetSkinTextureElement("ring") }, CenterCircle = new CircularContainer { Masking = true, Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(Size.X / 5), Child = new Box { RelativeSizeAxes = Axes.Both } }, new Container { Masking = false, Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, Rotation = 45, Children = new Drawable[] { new Container { Masking = true, Anchor = Anchor.Centre, Origin = Anchor.Centre, CornerRadius = Size.X / 12, Size = new Vector2(Size.X / 3, Size.X / 7), Position = new Vector2(Size.X / 3, 0), Child = new Box { RelativeSizeAxes = Axes.Both } }, new Container { Masking = true, Anchor = Anchor.Centre, Origin = Anchor.Centre, CornerRadius = Size.X / 12, Size = new Vector2(Size.X / 3, Size.X / 7), Position = new Vector2(-1 * Size.X / 3, 0), Rotation = 180, Child = new Box { RelativeSizeAxes = Axes.Both } }, new Container { Masking = true, Anchor = Anchor.Centre, Origin = Anchor.Centre, CornerRadius = Size.X / 12, Size = new Vector2(Size.X / 3, Size.X / 7), Position = new Vector2(0, Size.X / 3), Rotation = 90, Child = new Box { RelativeSizeAxes = Axes.Both } }, new Container { Masking = true, Anchor = Anchor.Centre, Origin = Anchor.Centre, CornerRadius = Size.X / 12, Size = new Vector2(Size.X / 3, Size.X / 7), Position = new Vector2(0, -1 * Size.X / 3), Rotation = 270, Child = new Box { RelativeSizeAxes = Axes.Both } } } }, new Container { Masking = false, Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, Children = new Drawable[] { new CircularContainer { Masking = true, Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(Size.X / 8), Position = new Vector2(Size.X / 4, 0), Child = new Box { RelativeSizeAxes = Axes.Both } }, new CircularContainer { Masking = true, Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(Size.X / 8), Position = new Vector2(-1 * Size.X / 4, 0), Child = new Box { RelativeSizeAxes = Axes.Both } }, new CircularContainer { Masking = true, Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(Size.X / 8), Position = new Vector2(0, Size.X / 4), Child = new Box { RelativeSizeAxes = Axes.Both } }, new CircularContainer { Masking = true, Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(Size.X / 8), Position = new Vector2(0, -1 * Size.X / 4), Child = new Box { RelativeSizeAxes = Axes.Both } } } } }; }
private void load(THSharpSkinElement textures) { if (character is DrawableTHSharpPlayer v) { Color4 lightColor = v.PrimaryColor.Lighten(0.5f); Color4 darkColor = v.PrimaryColor.Darken(0.5f); Size = new Vector2(90); Anchor = Anchor.Centre; Origin = Anchor.Centre; AlwaysPresent = true; Children = new Drawable[] { Sign = new Container { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(0.6f), Alpha = 0, AlwaysPresent = true, Children = new Drawable[] { characterSigil = new CircularContainer { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Masking = true, }, new Sprite { RelativeSizeAxes = Axes.Both, Size = new Vector2(2f), Colour = v.PrimaryColor, Anchor = Anchor.Centre, Origin = Anchor.Centre, Texture = textures.GetSkinTextureElement("seal"), } } }, new Container { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, Alpha = 0.2f, Size = new Vector2(1.5f), Padding = new MarginPadding(-Blur.KernelSize(5)), Child = (health = new CircularProgress { RelativeSizeAxes = Axes.Both, InnerRadius = 0.05f, Colour = v.ComplementaryColor }).WithEffect(new GlowEffect { Colour = v.ComplementaryColor, Strength = 2, PadExtent = true }), }, new Container { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, Alpha = 0.2f, Size = new Vector2(1.75f), Padding = new MarginPadding(-Blur.KernelSize(5)), Child = (energy = new CircularProgress { RelativeSizeAxes = Axes.Both, InnerRadius = 0.05f, Colour = v.SecondaryColor }).WithEffect(new GlowEffect { Colour = v.SecondaryColor, Strength = 2, PadExtent = true }), }, new Container { Position = new Vector2(-30, 0), Anchor = Anchor.CentreLeft, Origin = Anchor.CentreRight, Child = (leftValue = new SpriteText { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreRight, Colour = v.ComplementaryColor, Font = "Venera", TextSize = 16, Alpha = 0.75f, }).WithEffect(new GlowEffect { Colour = Color4.Transparent, PadExtent = true, }), }, new Container { Position = new Vector2(30, 0), Anchor = Anchor.CentreRight, Origin = Anchor.CentreLeft, Child = (rightValue = new SpriteText { Anchor = Anchor.CentreRight, Origin = Anchor.CentreLeft, Colour = v.SecondaryColor, Font = "Venera", TextSize = 16, Alpha = 0.75f, }).WithEffect(new GlowEffect { Colour = Color4.Transparent, PadExtent = true, }), }, }; switch (v.Player.FileName) { case "SakuyaIzayoi": characterSigil.Children = new Drawable[] { gear1 = new Sprite { Colour = lightColor, Anchor = Anchor.Centre, Origin = Anchor.Centre, Texture = textures.GetSkinTextureElement("gearSmall"), Position = new Vector2(-41, 10), }, gear2 = new Sprite { Colour = v.PrimaryColor, Anchor = Anchor.Centre, Origin = Anchor.Centre, Texture = textures.GetSkinTextureElement("gearMedium"), Position = new Vector2(-4, 16), }, gear3 = new Sprite { Colour = darkColor, Anchor = Anchor.Centre, Origin = Anchor.Centre, Texture = textures.GetSkinTextureElement("gearLarge"), Position = new Vector2(-16, -34), }, gear4 = new Sprite { Colour = v.PrimaryColor, Anchor = Anchor.Centre, Origin = Anchor.Centre, Texture = textures.GetSkinTextureElement("gearMedium"), Position = new Vector2(35, -40), }, gear5 = new Sprite { Colour = lightColor, Anchor = Anchor.Centre, Origin = Anchor.Centre, Texture = textures.GetSkinTextureElement("gearSmall"), Position = new Vector2(33, 8), }, }; break; } } else { Scale = new Vector2(0.6f); AutoSizeAxes = Axes.Both; Anchor = Anchor.Centre; Origin = Anchor.Centre; AlwaysPresent = true; Children = new Drawable[] { Sign = new Container { AutoSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, Child = new Sprite { Anchor = Anchor.Centre, Origin = Anchor.Centre, Colour = character.PrimaryColor, Texture = textures.GetSkinTextureElement("sign") } } }; } }
protected override void LoadAnimationSprites(THSharpSkinElement textures) { base.LoadAnimationSprites(textures); AddRange(new Drawable[] { SoulContainer = new SymcolContainer { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Colour = Character.PrimaryColor, Alpha = 1, Children = new Drawable[] { SoulSpriteStill = new SymcolSprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 1, }, SoulSpriteRight = new SymcolSprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, }, SoulSpriteLeft = new SymcolSprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, }, } }, RealityContainer = new SymcolContainer { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, Children = new Drawable[] { RealitySpriteStill = new SymcolSprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 1, }, RealitySpriteRight = new SymcolSprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, }, RealitySpriteLeft = new SymcolSprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, }, } }, VisibleHitbox = new SymcolCircularContainer { Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, Size = new Vector2((float)Character.HitboxWidth + (float)Character.HitboxWidth / 4), BorderColour = Character.PrimaryColor, BorderThickness = (float)Character.HitboxWidth / 4, Masking = true, Child = new Box { RelativeSizeAxes = Axes.Both }, EdgeEffect = new EdgeEffectParameters { Radius = (float)Character.HitboxWidth / 2, Type = EdgeEffectType.Shadow, Colour = Character.PrimaryColor.Opacity(0.5f) } } }); }
protected override void LoadAnimationSprites(THSharpSkinElement textures) { SoulContainer.Alpha = 0; KiaiContainer.Alpha = 1; KiaiLeftSprite.Alpha = 0; KiaiRightSprite.Alpha = 0; KiaiStillSprite.Alpha = 0; KiaiContainer.AddRange(new Drawable[] { Idle = new AnimatedSprite { RelativeSizeAxes = Axes.Both, UpdateRate = 100, Textures = new[] { textures.GetSkinTextureElement(Player.Name + " Kiai 0"), textures.GetSkinTextureElement(Player.Name + " Kiai 1"), textures.GetSkinTextureElement(Player.Name + " Kiai 2"), textures.GetSkinTextureElement(Player.Name + " Kiai 3"), textures.GetSkinTextureElement(Player.Name + " Kiai 4"), textures.GetSkinTextureElement(Player.Name + " Kiai 5"), textures.GetSkinTextureElement(Player.Name + " Kiai 6"), textures.GetSkinTextureElement(Player.Name + " Kiai 7"), } }, Left = new AnimatedSprite { Alpha = 0, RelativeSizeAxes = Axes.Both, UpdateRate = 100, Textures = new[] { textures.GetSkinTextureElement(Player.Name + " Kiai Left 0"), textures.GetSkinTextureElement(Player.Name + " Kiai Left 1"), textures.GetSkinTextureElement(Player.Name + " Kiai Left 2"), textures.GetSkinTextureElement(Player.Name + " Kiai Left 3"), textures.GetSkinTextureElement(Player.Name + " Kiai Left 4"), textures.GetSkinTextureElement(Player.Name + " Kiai Left 5"), textures.GetSkinTextureElement(Player.Name + " Kiai Left 6"), textures.GetSkinTextureElement(Player.Name + " Kiai Left 7"), } }, Right = new AnimatedSprite { Alpha = 0, RelativeSizeAxes = Axes.Both, UpdateRate = 100, Textures = new[] { textures.GetSkinTextureElement(Player.Name + " Kiai Right 0"), textures.GetSkinTextureElement(Player.Name + " Kiai Right 1"), textures.GetSkinTextureElement(Player.Name + " Kiai Right 2"), textures.GetSkinTextureElement(Player.Name + " Kiai Right 3"), textures.GetSkinTextureElement(Player.Name + " Kiai Right 4"), textures.GetSkinTextureElement(Player.Name + " Kiai Right 5"), textures.GetSkinTextureElement(Player.Name + " Kiai Right 6"), textures.GetSkinTextureElement(Player.Name + " Kiai Right 7"), } } }); }
protected override void LoadAnimationSprites(THSharpSkinElement textures) { base.LoadAnimationSprites(textures); SoulContainer.Alpha = 0; RealityContainer.Alpha = 1; RealitySpriteLeft.Alpha = 0; RealitySpriteRight.Alpha = 0; RealitySpriteStill.Alpha = 0; RealityContainer.AddRange(new Drawable[] { //TODO: rename "Kiai" files to "Reality" idle = new AnimatedSprite { RelativeSizeAxes = Axes.Both, UpdateRate = 100, Textures = new[] { textures.GetSkinTextureElement(Character.Name + " Kiai 0"), textures.GetSkinTextureElement(Character.Name + " Kiai 1"), textures.GetSkinTextureElement(Character.Name + " Kiai 2"), textures.GetSkinTextureElement(Character.Name + " Kiai 3"), textures.GetSkinTextureElement(Character.Name + " Kiai 4"), textures.GetSkinTextureElement(Character.Name + " Kiai 5"), textures.GetSkinTextureElement(Character.Name + " Kiai 6"), textures.GetSkinTextureElement(Character.Name + " Kiai 7"), } }, left = new AnimatedSprite { Alpha = 0, RelativeSizeAxes = Axes.Both, UpdateRate = 100, Textures = new[] { textures.GetSkinTextureElement(Character.Name + " Kiai Left 0"), textures.GetSkinTextureElement(Character.Name + " Kiai Left 1"), textures.GetSkinTextureElement(Character.Name + " Kiai Left 2"), textures.GetSkinTextureElement(Character.Name + " Kiai Left 3"), textures.GetSkinTextureElement(Character.Name + " Kiai Left 4"), textures.GetSkinTextureElement(Character.Name + " Kiai Left 5"), textures.GetSkinTextureElement(Character.Name + " Kiai Left 6"), textures.GetSkinTextureElement(Character.Name + " Kiai Left 7"), } }, right = new AnimatedSprite { Alpha = 0, RelativeSizeAxes = Axes.Both, UpdateRate = 100, Textures = new[] { textures.GetSkinTextureElement(Character.Name + " Kiai Right 0"), textures.GetSkinTextureElement(Character.Name + " Kiai Right 1"), textures.GetSkinTextureElement(Character.Name + " Kiai Right 2"), textures.GetSkinTextureElement(Character.Name + " Kiai Right 3"), textures.GetSkinTextureElement(Character.Name + " Kiai Right 4"), textures.GetSkinTextureElement(Character.Name + " Kiai Right 5"), textures.GetSkinTextureElement(Character.Name + " Kiai Right 6"), textures.GetSkinTextureElement(Character.Name + " Kiai Right 7"), } } }); }
private void load(THSharpSkinElement textures) { Health = MaxHealth; Anchor = Anchor.TopLeft; Origin = Anchor.Centre; //TODO: Temp? Size = new Vector2(64); AddRange(new Drawable[] { Seal = new Seal(this), SoulContainer = new Container { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Colour = PrimaryColor, Alpha = 1, Children = new Drawable[] { StillSprite = new Sprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 1, }, RightSprite = new Sprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, }, LeftSprite = new Sprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, }, } }, KiaiContainer = new Container { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, Children = new Drawable[] { KiaiStillSprite = new Sprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 1, }, KiaiRightSprite = new Sprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, }, KiaiLeftSprite = new Sprite { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, }, } }, VisibleHitbox = new CircularContainer { Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0, Size = new Vector2(HitboxWidth + HitboxWidth / 4), BorderColour = PrimaryColor, BorderThickness = HitboxWidth / 4, Masking = true, Child = new Box { RelativeSizeAxes = Axes.Both }, EdgeEffect = new EdgeEffectParameters { Radius = HitboxWidth / 2, Type = EdgeEffectType.Shadow, Colour = PrimaryColor.Opacity(0.5f) } } }); Add(Hitbox = new SymcolHitbox(new Vector2(HitboxWidth)) { Team = Team }); if (CharacterName == "player" || CharacterName == "enemy") { KiaiContainer.Colour = PrimaryColor; } LoadAnimationSprites(textures); }
/// <summary> /// Gets called just before hit detection /// </summary> //protected virtual void ParseBullet(DrawableBullet bullet) { } protected virtual void LoadAnimationSprites(THSharpSkinElement textures) { StillSprite.Texture = textures.GetSkinTextureElement(CharacterName); KiaiStillSprite.Texture = textures.GetSkinTextureElement(CharacterName + "Kiai"); }
public virtual void LoadDependencies(THSharpSkinElement textures, Storage storage) { }
/// <summary> /// Can be used to load custom character sprites /// </summary> /// <param name="textures"></param> protected virtual void LoadAnimationSprites(THSharpSkinElement textures) { }
private void load(THSharpSkinElement textures) { Health = Character.MaxHealth; LoadAnimationSprites(textures); }
public override void LoadDependencies(THSharpSkinElement textures, Storage storage) { base.LoadDependencies(textures, storage); icon = textures.GetSkinTextureElement("icon", true); }