Skip to content

Commit

Permalink
Merge pull request #175 from PillTime/master
Browse files Browse the repository at this point in the history
Add Trustworthy Mod
  • Loading branch information
LumpBloom7 authored Nov 7, 2022
2 parents f4594d5 + 495ad75 commit ef87ce5
Show file tree
Hide file tree
Showing 5 changed files with 119 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ public HishigataBeatmapConverter(IBeatmap beatmap, Ruleset ruleset)
// https://github.com/ppy/osu/tree/master/osu.Game/Rulesets/Objects/Types
public override bool CanConvert() => Beatmap.HitObjects.All(x => x is IHasPosition);

// trustworthy mod
public bool FeignsAllowed { get; set; } = true;

protected override IEnumerable<HishigataHitObject> ConvertHitObject(HitObject original, IBeatmap beatmap, CancellationToken cancellationToken)
{
var difficulty = beatmap.BeatmapInfo.Difficulty;
Expand All @@ -34,7 +37,11 @@ protected override IEnumerable<HishigataHitObject> ConvertHitObject(HitObject or
float angle = getHitObjectAngle(position) / 90;
int lane = (int)Math.Round(angle);

bool isFeign = original.Samples.Any(x => x.Name == HitSampleInfo.HIT_WHISTLE);
bool isFeign = false;
if (FeignsAllowed)
{
isFeign = original.Samples.Any(x => x.Name == HitSampleInfo.HIT_WHISTLE);
}

if (lane >= 4) lane -= 4;
switch (original)
Expand Down
6 changes: 6 additions & 0 deletions osu.Game.Rulesets.Hishigata/HishigataRuleset.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@ public override IEnumerable<Mod> GetModsFor(ModType type)
new HishigataModAutoplay(),
};

case ModType.Conversion:
return new Mod[]
{
new HishigataModTrustworthy(),
};

case ModType.Fun:
return new Mod[]
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using osu.Framework.Localisation;

namespace osu.Game.Rulesets.Hishigata.Localisation.Mods
{
public static class HishigataModTrustworthyStrings
{
private const string prefix = @"osu.Game.Rulesets.Hishigata.Resources.Localisation.Mods.HishigataModTrustworthyStrings";

/// <summary>
/// "Notes don't switch sides."
/// </summary>
public static LocalisableString ModDescription => new TranslatableString(getKey(@"mod_description"), @"Notes don't switch sides.");

private static string getKey(string key) => $"{prefix}:{key}";
}
}
25 changes: 25 additions & 0 deletions osu.Game.Rulesets.Hishigata/Mods/HishigataModTrustworthy.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using osu.Framework.Graphics.Sprites;
using osu.Framework.Localisation;
using osu.Game.Beatmaps;
using osu.Game.Rulesets.Hishigata.Localisation.Mods;
using osu.Game.Rulesets.Hishigata.Beatmaps;
using osu.Game.Rulesets.Mods;

namespace osu.Game.Rulesets.Hishigata.Mods
{
public class HishigataModTrustworthy : Mod, IApplicableToBeatmapConverter
{
public override string Name => "Trustworthy";
public override string Acronym => "TW";
public override LocalisableString Description => HishigataModTrustworthyStrings.ModDescription;
public override double ScoreMultiplier => 0.8;
public override ModType Type => ModType.Conversion;
public override IconUsage? Icon => FontAwesome.Solid.Check;

public void ApplyToBeatmapConverter(IBeatmapConverter beatmapConverter)
{
var converter = (HishigataBeatmapConverter)beatmapConverter;
converter.FeignsAllowed = false;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="mimetype" type="xsd:string"/>
<xsd:attribute ref="xml:space"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1"/>
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3"/>
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4"/>
<xsd:attribute ref="xml:space"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="mod_description" xml:space="preserve">
<value>Notes don't switch sides.</value>
</data>
</root>

0 comments on commit ef87ce5

Please sign in to comment.