remappable item colours

- fixed bop toggle not working
- fixed some entities being stretchable when they shouldn't
This commit is contained in:
minenice55 2022-08-12 10:41:41 -04:00
parent 04067eaaac
commit f216143e1f
7 changed files with 759 additions and 115 deletions

View file

@ -31117,7 +31117,7 @@ SpriteRenderer:
m_FlipX: 0 m_FlipX: 0
m_FlipY: 0 m_FlipY: 0
m_DrawMode: 0 m_DrawMode: 0
m_Size: {x: 3.5694444, y: 1.6805556} m_Size: {x: 3.5694444, y: 1.6805557}
m_AdaptiveModeThreshold: 0.5 m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0 m_SpriteTileMode: 0
m_WasSpriteAssigned: 0 m_WasSpriteAssigned: 0
@ -61611,6 +61611,7 @@ Transform:
- {fileID: 7124728438334572711} - {fileID: 7124728438334572711}
- {fileID: 2322646606158329272} - {fileID: 2322646606158329272}
- {fileID: 5350646417728134167} - {fileID: 5350646417728134167}
- {fileID: 7866149883590960440}
m_Father: {fileID: 3325930061220206449} m_Father: {fileID: 3325930061220206449}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -61684,6 +61685,31 @@ MonoBehaviour:
- {fileID: 4838905935631281929} - {fileID: 4838905935631281929}
- {fileID: 6348241087457618039} - {fileID: 6348241087457618039}
awakeAnim: awakeAnim:
cellRenderers:
- {fileID: 3539874015363083757}
- {fileID: 6100859660585592015}
- {fileID: 5284027654662856434}
- {fileID: 8717773036192970139}
- {fileID: 6902659065314665230}
- {fileID: 7106630173843556496}
- {fileID: 5747805804250125440}
- {fileID: 1280364348460651971}
ItemAlienMap:
- {r: 0.14509805, g: 0.14509805, b: 0.14509805, a: 1}
- {r: 0.99215686, g: 0.99607843, b: 0.99607843, a: 1}
- {r: 0, g: 0, b: 0, a: 0}
ItemBombMap:
- {r: 1, g: 0.08235294, b: 0.12941177, a: 1}
- {r: 1, g: 0.9372549, b: 0.03137255, a: 1}
- {r: 0, g: 0, b: 0, a: 0}
ItemBarrelMap:
- {r: 0.4509804, g: 0.3019608, b: 0.27058825, a: 1}
- {r: 0.3019608, g: 0.16862746, b: 0.03529412, a: 1}
- {r: 0.7137255, g: 0.30980393, b: 0.42352942, a: 1}
ItemCookingLidMap:
- {r: 0, g: 0, b: 0, a: 1}
- {r: 1, g: 1, b: 1, a: 0}
- {r: 0, g: 0, b: 0, a: 0}
comboId: -1 comboId: -1
HitPosition: HitPosition:
- {fileID: 320160549894608069} - {fileID: 320160549894608069}
@ -61726,7 +61752,7 @@ MonoBehaviour:
- {fileID: 3313832072412894528} - {fileID: 3313832072412894528}
CurrentCurve: {fileID: 0} CurrentCurve: {fileID: 0}
curveTargetBeat: 0 curveTargetBeat: 0
BulbLight: {fileID: 6100859660585592015} BulbLight: {fileID: 6791490746777997791}
--- !u!1 &4199646893499933531 --- !u!1 &4199646893499933531
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -76722,6 +76748,88 @@ MonoBehaviour:
handleType: 0 handleType: 0
leftHandleLocalPosition: {x: -1, y: 3, z: 0} leftHandleLocalPosition: {x: -1, y: 3, z: 0}
rightHandleLocalPosition: {x: 1, y: -3, z: -0} rightHandleLocalPosition: {x: 1, y: -3, z: -0}
--- !u!1 &5042991525231704989
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7866149883590960440}
- component: {fileID: 6791490746777997791}
m_Layer: 0
m_Name: MainNoMap
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7866149883590960440
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5042991525231704989}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.64, y: 0.64, z: 1}
m_Children: []
m_Father: {fileID: 4468064543835661468}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &6791490746777997791
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5042991525231704989}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 3.8888888, y: 3.8888888}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 0
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &5218911297968347512 --- !u!1 &5218911297968347512
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -96548,7 +96656,7 @@ MonoBehaviour:
Item: {fileID: 4158625219071088136} Item: {fileID: 4158625219071088136}
Joe: {fileID: 5897754239051819249} Joe: {fileID: 5897754239051819249}
MappingMaterial: {fileID: 2100000, guid: 01a12550d4a6d8141bbbdf4ce2700eea, type: 2} MappingMaterial: {fileID: 2100000, guid: 01a12550d4a6d8141bbbdf4ce2700eea, type: 2}
BodyColor: {r: 1, g: 1, b: 1, a: 0} BodyColor: {r: 1, g: 1, b: 1, a: 1}
HighlightColor: {r: 0.54901963, g: 0.54901963, b: 0.54901963, a: 1} HighlightColor: {r: 0.54901963, g: 0.54901963, b: 0.54901963, a: 1}
ItemColor: {r: 1, g: 1, b: 1, a: 1} ItemColor: {r: 1, g: 1, b: 1, a: 1}
Word: {fileID: 8471847813194768760} Word: {fileID: 8471847813194768760}

View file

@ -144,11 +144,27 @@ AnimationClip:
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
path: Main path: Main
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 0.5, y: 0.5, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: MainNoMap
m_FloatCurves: [] m_FloatCurves: []
m_PPtrCurves: m_PPtrCurves:
- curve: - curve:
- time: 0 - time: 0
value: {fileID: -6283416824598814145, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3} value: {fileID: 0}
attribute: m_Sprite attribute: m_Sprite
path: Main path: Main
classID: 212 classID: 212
@ -202,6 +218,13 @@ AnimationClip:
path: Sub7 path: Sub7
classID: 212 classID: 212
script: {fileID: 0} script: {fileID: 0}
- curve:
- time: 0
value: {fileID: -6283416824598814145, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3}
attribute: m_Sprite
path: MainNoMap
classID: 212
script: {fileID: 0}
m_SampleRate: 60 m_SampleRate: 60
m_WrapMode: 0 m_WrapMode: 0
m_Bounds: m_Bounds:
@ -265,6 +288,13 @@ AnimationClip:
typeID: 212 typeID: 212
customType: 23 customType: 23
isPPtrCurve: 1 isPPtrCurve: 1
- serializedVersion: 2
path: 694289395
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
- serializedVersion: 2 - serializedVersion: 2
path: 521822810 path: 521822810
attribute: 1 attribute: 1
@ -321,15 +351,23 @@ AnimationClip:
typeID: 4 typeID: 4
customType: 0 customType: 0
isPPtrCurve: 0 isPPtrCurve: 0
- serializedVersion: 2
path: 694289395
attribute: 3
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
pptrCurveMapping: pptrCurveMapping:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: -6283416824598814145, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3} - {fileID: -6283416824598814145, guid: 868cd67f05ca7c646bae00fcc2ba7eaa, type: 3}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
m_AnimationClipSettings: m_AnimationClipSettings:
serializedVersion: 2 serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseClip: {fileID: 0}
@ -807,6 +845,63 @@ AnimationClip:
path: Main path: Main
classID: 4 classID: 4
script: {fileID: 0} script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path: MainNoMap
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path: MainNoMap
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path: MainNoMap
classID: 4
script: {fileID: 0}
m_EulerEditorCurves: [] m_EulerEditorCurves: []
m_HasGenericRootTransform: 0 m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0 m_HasMotionFloatCurves: 0

View file

@ -82,7 +82,7 @@ Material:
m_Colors: m_Colors:
- _AddColor: {r: 0, g: 0, b: 0, a: 0} - _AddColor: {r: 0, g: 0, b: 0, a: 0}
- _Color: {r: 1, g: 1, b: 1, a: 1} - _Color: {r: 1, g: 1, b: 1, a: 1}
- _ColorAlpha: {r: 1, g: 1, b: 1, a: 0} - _ColorAlpha: {r: 1, g: 1, b: 1, a: 1}
- _ColorBravo: {r: 1, g: 0, b: 0, a: 1} - _ColorBravo: {r: 1, g: 0, b: 0, a: 1}
- _ColorDelta: {r: 0.54901963, g: 0.54901963, b: 0.54901963, a: 1} - _ColorDelta: {r: 0.54901963, g: 0.54901963, b: 0.54901963, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

View file

@ -13,7 +13,7 @@ namespace HeavenStudio.Games.Loaders
public static Minigame AddGame(EventCaller eventCaller) { public static Minigame AddGame(EventCaller eventCaller) {
return new Minigame("karateman", "Karate Man [INDEV REWORK]", "70A8D8", false, false, new List<GameAction>() return new Minigame("karateman", "Karate Man [INDEV REWORK]", "70A8D8", false, false, new List<GameAction>()
{ {
new GameAction("bop", delegate { KarateMan.instance.ToggleBop(eventCaller.currentEntity.toggle); }, 0.5f, true, new List<Param>() new GameAction("bop", delegate { KarateMan.instance.ToggleBop(eventCaller.currentEntity.toggle); }, 0.5f, false, new List<Param>()
{ {
new Param("toggle", true, "Bop", "Whether to bop to the beat or not") new Param("toggle", true, "Bop", "Whether to bop to the beat or not")
}), }),
@ -56,7 +56,7 @@ namespace HeavenStudio.Games.Loaders
new Param("colorA", new Color(), "Custom Filter Color", "The filter color to use when color filter type is set to Custom"), new Param("colorA", new Color(), "Custom Filter Color", "The filter color to use when color filter type is set to Custom"),
new Param("colorB", new Color(), "Fading Filter Color", "When using the Fade background effect, make filter colour fade to this colour"), new Param("colorB", new Color(), "Fading Filter Color", "When using the Fade background effect, make filter colour fade to this colour"),
}), }),
new GameAction("set object colors", delegate { var e = eventCaller.currentEntity; KarateMan.instance.UpdateMaterialColour(e.colorA, e.colorB, e.colorC); }, 0.5f, true, new List<Param>() new GameAction("set object colors", delegate { var e = eventCaller.currentEntity; KarateMan.instance.UpdateMaterialColour(e.colorA, e.colorB, e.colorC); }, 0.5f, false, new List<Param>()
{ {
new Param("colorA", new Color(), "Joe Body Color", "The color to use for Karate Joe's body"), new Param("colorA", new Color(), "Joe Body Color", "The color to use for Karate Joe's body"),
new Param("colorB", new Color(), "Joe Highlight Color", "The color to use for Karate Joe's highlights"), new Param("colorB", new Color(), "Joe Highlight Color", "The color to use for Karate Joe's highlights"),
@ -291,6 +291,7 @@ namespace HeavenStudio.Games
SetBgAndShadowCol(0f, 0f, bgType, (int) currentShadowType, BackgroundColors[bgType], customShadowColour, (int)currentBgEffect); SetBgAndShadowCol(0f, 0f, bgType, (int) currentShadowType, BackgroundColors[bgType], customShadowColour, (int)currentBgEffect);
UpdateMaterialColour(BodyColor, HighlightColor, ItemColor); UpdateMaterialColour(BodyColor, HighlightColor, ItemColor);
ToggleBop(true);
} }
private void Update() private void Update()

View file

@ -39,7 +39,6 @@ namespace HeavenStudio.Games.Scripts_KarateMan
private void Awake() private void Awake()
{ {
} }
private void Update() private void Update()
@ -53,7 +52,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
anim.Play("Beat", -1, 0); anim.Play("Beat", -1, 0);
} }
if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1, false) && cond.songPositionInBeats > bop.startBeat && cond.songPositionInBeats >= unPrepareTime && !inCombo) if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1, false) && cond.songPositionInBeats > bop.startBeat && cond.songPositionInBeats < bop.startBeat + bop.length && cond.songPositionInBeats >= unPrepareTime && !inCombo)
{ {
anim.speed = 1f; anim.speed = 1f;
anim.Play("Beat", -1, 0); anim.Play("Beat", -1, 0);

View file

@ -26,7 +26,12 @@ namespace HeavenStudio.Games.Scripts_KarateMan
FlyStatus status = FlyStatus.Fly; FlyStatus status = FlyStatus.Fly;
Color effectTint = Color.white; Color effectTint = Color.white;
Material[] renderMaterials; [SerializeField] SpriteRenderer[] cellRenderers;
Material[] cellMaterials;
[SerializeField] Color[] ItemAlienMap;
[SerializeField] Color[] ItemBombMap;
[SerializeField] Color[] ItemBarrelMap;
[SerializeField] Color[] ItemCookingLidMap;
public int comboId = -1; public int comboId = -1;
static int _lastCombo = -1; static int _lastCombo = -1;
@ -110,6 +115,57 @@ namespace HeavenStudio.Games.Scripts_KarateMan
return flyPosition; return flyPosition;
} }
void SetColourMapping()
{
Color alpha, bravo, delta;
switch (type)
{
case ItemType.Alien:
alpha = ItemAlienMap[0];
bravo = ItemAlienMap[1];
delta = KarateMan.instance.ItemColor;
break;
case ItemType.KickBomb:
alpha = ItemBombMap[0];
bravo = ItemBombMap[1];
delta = KarateMan.instance.ItemColor;
break;
case ItemType.KickBarrel:
case ItemType.ComboBarrel:
alpha = ItemBarrelMap[0];
bravo = ItemBarrelMap[1];
delta = ItemBarrelMap[2];
break;
case ItemType.Cooking:
case ItemType.CookingLid:
alpha = ItemCookingLidMap[0];
bravo = ItemCookingLidMap[1];
delta = KarateMan.instance.ItemColor;
break;
default:
alpha = KarateMan.instance.ItemColor;
bravo = KarateMan.instance.ItemColor;
delta = KarateMan.instance.ItemColor;
break;
}
for (int i = 0; i < cellRenderers.Length; i++) {
SpriteRenderer r = cellRenderers[i];
if (r.material != null)
{
if (cellMaterials == null)
{
cellMaterials = new Material[cellRenderers.Length];
cellMaterials[i] = Instantiate(r.material);
r.material = cellMaterials[i];
}
r.material.SetColor("_ColorAlpha", alpha);
r.material.SetColor("_ColorBravo", bravo);
r.material.SetColor("_ColorDelta", delta);
}
}
}
void Awake() void Awake()
{ {
switch (type) switch (type)
@ -178,8 +234,6 @@ namespace HeavenStudio.Games.Scripts_KarateMan
else else
transform.position = CurrentCurve.GetPoint(0f); transform.position = CurrentCurve.GetPoint(0f);
Animator mobjAnim = GetComponent<Animator>();
mobjAnim.Play(awakeAnim, -1, 0);
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (-360f * Time.deltaTime) + UnityEngine.Random.Range(0f, 360f)); transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (-360f * Time.deltaTime) + UnityEngine.Random.Range(0f, 360f));
ShadowInstance = GameObject.Instantiate(Shadow, KarateMan.instance.ItemHolder); ShadowInstance = GameObject.Instantiate(Shadow, KarateMan.instance.ItemHolder);
@ -189,6 +243,13 @@ namespace HeavenStudio.Games.Scripts_KarateMan
ShadowInstance.transform.position = new Vector3(transform.position.x, floorHeight - 0.5f, transform.position.z); ShadowInstance.transform.position = new Vector3(transform.position.x, floorHeight - 0.5f, transform.position.z);
} }
void Start()
{
Animator mobjAnim = GetComponent<Animator>();
mobjAnim.Play(awakeAnim, -1, 0);
SetColourMapping();
}
void Update() void Update()
{ {
var cond = Conductor.instance; var cond = Conductor.instance;
@ -278,6 +339,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
} }
ShadowInstance.transform.position = new Vector3(transform.position.x, floorHeight - 0.5f, transform.position.z); ShadowInstance.transform.position = new Vector3(transform.position.x, floorHeight - 0.5f, transform.position.z);
shadowRenderer.color = KarateMan.instance.GetShadowColor(); shadowRenderer.color = KarateMan.instance.GetShadowColor();
SetColourMapping();
} }
void CreateHitMark(bool useLocalPos = false) void CreateHitMark(bool useLocalPos = false)