Implemented forced fight, updated attack range to be closer to player.

This commit is contained in:
finnchen123
2026-02-08 13:05:09 +01:00
parent 540cff4ca2
commit 53f775dfe7
15 changed files with 67 additions and 322 deletions

View File

@@ -1364,6 +1364,10 @@ MonoBehaviour:
m_Key: pine
m_Metadata:
m_Items: []
- m_Id: 344147329127993344
m_Key: escapeFailForced
m_Metadata:
m_Items: []
m_Metadata:
m_Items: []
m_KeyGenerator:

View File

@@ -1375,6 +1375,10 @@ MonoBehaviour:
m_Localized: Tanne
m_Metadata:
m_Items: []
- m_Id: 344147329127993344
m_Localized: Du kannst diesem Kampf nicht entkommen.
m_Metadata:
m_Items: []
references:
version: 2
RefIds:

View File

@@ -1416,6 +1416,10 @@ MonoBehaviour:
m_Localized: Pine tree
m_Metadata:
m_Items: []
- m_Id: 344147329127993344
m_Localized: You cannot escape this fight.
m_Metadata:
m_Items: []
references:
version: 2
RefIds: []

View File

@@ -1,258 +1,5 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1755437404601407390
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1490485691279698368}
- component: {fileID: 2823500805711375321}
- component: {fileID: 2095238798181559198}
m_Layer: 5
m_Name: pnlHealth
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1490485691279698368
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1755437404601407390}
m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8692566566668546467}
m_Father: {fileID: 8927601208402363686}
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2823500805711375321
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1755437404601407390}
m_CullTransparentMesh: 1
--- !u!114 &2095238798181559198
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1755437404601407390}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &1873279497245847383
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8927601208402363686}
- component: {fileID: 4898475509121882234}
- component: {fileID: 7219702916767965912}
- component: {fileID: 985266517551115690}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8927601208402363686
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1873279497245847383}
m_LocalRotation: {x: -0, y: 0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 10, y: 10, z: 10}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1490485691279698368}
m_Father: {fileID: 4016379320889883386}
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0.75}
m_SizeDelta: {x: 0.2, y: 0.05}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &4898475509121882234
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1873279497245847383}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &7219702916767965912
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1873279497245847383}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 1
--- !u!114 &985266517551115690
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1873279497245847383}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!1 &2454216620873436980
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8692566566668546467}
- component: {fileID: 7163846638090094393}
- component: {fileID: 2408993422533026150}
m_Layer: 5
m_Name: pnlFill
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8692566566668546467
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2454216620873436980}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1490485691279698368}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7163846638090094393
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2454216620873436980}
m_CullTransparentMesh: 1
--- !u!114 &2408993422533026150
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2454216620873436980}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4493055063801180089
GameObject:
m_ObjectHideFlags: 0
@@ -357,7 +104,7 @@ SphereCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 10
m_Radius: 2
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &9177574821772890452
GameObject:
@@ -492,9 +239,6 @@ PrefabInstance:
- targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: 07d4f52b1d00e531cb997ce759ba7528, type: 3}
insertIndex: -1
addedObject: {fileID: 1643418974084022053}
- targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: 07d4f52b1d00e531cb997ce759ba7528, type: 3}
insertIndex: -1
addedObject: {fileID: 8927601208402363686}
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 07d4f52b1d00e531cb997ce759ba7528, type: 3}
insertIndex: -1

View File

@@ -157,7 +157,7 @@ SphereCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 10
m_Radius: 3
m_Center: {x: 0, y: 0, z: 0}
--- !u!1001 &6930797397305739564
PrefabInstance:

View File

@@ -104,7 +104,7 @@ SphereCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 10
m_Radius: 3
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &9175929318179943571
GameObject:

View File

@@ -157,7 +157,7 @@ SphereCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 10
m_Radius: 3
m_Center: {x: 0, y: 0, z: 0}
--- !u!1001 &7814914561341846133
PrefabInstance:

View File

@@ -104,7 +104,7 @@ SphereCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 10
m_Radius: 3
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &6532252744912899084
GameObject:

View File

@@ -51,7 +51,7 @@ SphereCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 10
m_Radius: 4
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &5449467032391326534
GameObject:

View File

@@ -145,7 +145,7 @@ public class Controls : MonoBehaviour
switch (target.tag.Split(':')[1])
{
case "Enemy":
fight.GetComponent<Fight>().startFight(worldGen.GetComponent<WorldGenerator>().getCurrentTile(), target, player);
fight.GetComponent<Fight>().startFight(worldGen.GetComponent<WorldGenerator>().getCurrentTile(), target, player, true);
break;
case "Tree":
player.GetComponent<PlayerGameObject>().getPlayer().getStat("TreeCount").changeAmount(1);

View File

@@ -14,12 +14,16 @@ public class Fight : MonoBehaviour
GameObject player;
System.Random rand = new System.Random();
UIHandler uihandler;
bool isFleeable = true;
public bool isFightActive = false;
public void startFight(GameObject tile, GameObject enemy, GameObject player)
public void startFight(GameObject tile, GameObject enemy, GameObject player, bool isFleeable)
{
isFightActive = true;
this.tile = tile;
this.enemy = enemy;
this.player = player;
this.isFleeable = isFleeable;
enemy.GetComponent<Enemy>().scaleEnemy(player.GetComponent<PlayerGameObject>());
enemy.transform.rotation = Quaternion.Euler(0, GameObject.Find("Main Camera").transform.rotation.y, 0);
@@ -31,6 +35,7 @@ public class Fight : MonoBehaviour
private void endFight()
{
isFightActive = false;
uihandler.closeFight();
}
@@ -42,16 +47,23 @@ public class Fight : MonoBehaviour
switch (index)
{
case 1:
if (rand.Next(1, 11) <= 3)
if (rand.Next(1, 11) <= 3 && isFleeable)
{
escapedSuccesfully = true;
endFight();
uihandler.showMessage("INFORMATION;" + TextHandler.getText("escape"));
}
else
{
if (isFleeable)
{
uihandler.showMessage("ERROR;" + TextHandler.getText("escapeFail"));
}
else
{
uihandler.showMessage("ERROR;" + TextHandler.getText("escapeFailForced"));
}
}
break;
case 2:
skillnumber = 0;

View File

@@ -19,9 +19,7 @@ namespace Assets.Scripts.InteractableObjects
bool isJumping;
Stopwatch jumpTimer;
bool followsPlayer;
bool isAttacking;
bool isAttackOnCooldown;
Stopwatch attackTimer;
Fight fight;
// Start is called before the first frame update
void Start()
@@ -30,33 +28,14 @@ namespace Assets.Scripts.InteractableObjects
jumpTimer = new Stopwatch();
jumpTimer.Start();
followsPlayer = false;
isAttacking = false;
isAttackOnCooldown = false;
attackTimer = new Stopwatch();
fight = GameObject.Find("Fight").GetComponent<Fight>();
}
// Update is called once per frame
void Update()
{
if(fight.isFightActive) return;
Jump();
if (isAttacking)
{
Attack();
}
}
void Attack()
{
if (!isAttackOnCooldown)
{
attackTimer.Start();
isAttackOnCooldown = true;
}
if (attackTimer.ElapsedMilliseconds >= 2000)
{
attackTimer.Reset();
isAttackOnCooldown = false;
}
}
void Jump()
@@ -95,16 +74,12 @@ namespace Assets.Scripts.InteractableObjects
public void HandleAttack()
{
isAttacking = true;
//Create attack logic here
//TODO: Force Fight start
}
public void handleFollow(bool isFollowing)
{
followsPlayer = isFollowing;
isAttacking = false;
attackTimer.Reset();
isAttackOnCooldown = false;
}
public void HandleDetection()

View File

@@ -253,7 +253,7 @@ namespace Assets.Scripts.Player
switch (col.name)
{
case "AttackRange":
enemy.HandleAttack();
GameObject.Find("Fight").GetComponent<Fight>().startFight(worldGenerator.GetComponent<WorldGenerator>().getCurrentTile(), col.gameObject.transform.parent.gameObject, gameObject, false);
break;
case "DetectionRange":
enemy.HandleDetection();

View File

@@ -106,10 +106,12 @@ v2.0.0 - Gameplay and UI improvements (last update)
- Improved enemy generation
- Worked on controls and camera (Still a bit unpolished but close to finished)
v2.0.0 - Gameplay and UI improvements (current version)
v2.1.0 - Gameplay and UI improvements (current version)
-----Visuals/Sounds-----
- Added background to coordinates // @Lunchen
- Increased font size on some elements // @Lunchen
-----Mechanics-----
- Drastically improved camera handling
- Added mechanic that slimes can trigger unleavable fight
- Added movement to slimes to make the world feel more alive

View File

@@ -19,7 +19,7 @@ MonoBehaviour:
width: 1920
height: 998
m_ShowMode: 4
m_Title: Game
m_Title: Project
m_RootView: {fileID: 2}
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
@@ -118,7 +118,7 @@ MonoBehaviour:
m_MinSize: {x: 300, y: 100}
m_MaxSize: {x: 24288, y: 16192}
vertical: 1
controlID: 18
controlID: 65
draggingID: 0
--- !u!114 &6
MonoBehaviour:
@@ -144,7 +144,7 @@ MonoBehaviour:
m_MinSize: {x: 300, y: 100}
m_MaxSize: {x: 24288, y: 16192}
vertical: 0
controlID: 19
controlID: 66
draggingID: 0
--- !u!114 &7
MonoBehaviour:
@@ -170,7 +170,7 @@ MonoBehaviour:
m_MinSize: {x: 200, y: 100}
m_MaxSize: {x: 16192, y: 16192}
vertical: 1
controlID: 20
controlID: 67
draggingID: 0
--- !u!114 &8
MonoBehaviour:
@@ -196,7 +196,7 @@ MonoBehaviour:
m_MinSize: {x: 200, y: 50}
m_MaxSize: {x: 16192, y: 8096}
vertical: 0
controlID: 21
controlID: 42
draggingID: 0
--- !u!114 &9
MonoBehaviour:
@@ -234,7 +234,7 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: GameView
m_Name: SceneView
m_EditorClassIdentifier:
m_Children: []
m_Position:
@@ -243,14 +243,14 @@ MonoBehaviour:
y: 0
width: 1313
height: 664
m_MinSize: {x: 102, y: 126}
m_MinSize: {x: 202, y: 226}
m_MaxSize: {x: 4002, y: 4026}
m_ActualView: {fileID: 15}
m_ActualView: {fileID: 13}
m_Panes:
- {fileID: 13}
- {fileID: 15}
m_Selected: 1
m_LastSelected: 0
m_Selected: 0
m_LastSelected: 1
--- !u!114 &11
MonoBehaviour:
m_ObjectHideFlags: 52
@@ -325,10 +325,10 @@ MonoBehaviour:
m_TextWithWhitespace: "Scene\u200B"
m_Pos:
serializedVersion: 2
x: 2192
y: 91
x: 273
y: 24
width: 1311
height: 657
height: 638
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -984,7 +984,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 12fbffff169100005292000092920000d692000070930000d693000024940000e09400006e95000048960000
m_ExpandedIDs: a68bffff12fbffff
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@@ -1030,10 +1030,10 @@ MonoBehaviour:
m_TextWithWhitespace: "Game\u200B"
m_Pos:
serializedVersion: 2
x: 273
y: 24
x: 2192
y: 91
width: 1311
height: 638
height: 657
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -1080,7 +1080,7 @@ MonoBehaviour:
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 1
m_EnableMouseInput: 0
m_EnableSliderZoomHorizontal: 0
m_EnableSliderZoomVertical: 0
m_UniformScale: 1
@@ -1159,7 +1159,7 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/Prefabs
- Assets/Locals/StringTable
m_Globs: []
m_ProductIds:
m_AnyWithAssetOrigin: 0
@@ -1169,16 +1169,16 @@ MonoBehaviour:
m_ViewMode: 1
m_StartGridSize: 64
m_LastFolders:
- Assets/Prefabs
- Assets/Locals/StringTable
m_LastFoldersGridSize: -1
m_LastProjectPath: /media/nicola/M2SSD/Programmieren/Unity/TalesOfNovariel
m_LockTracker:
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 78}
m_SelectedIDs: 2c9c0000
m_LastClickedID: 39980
m_ExpandedIDs: 00000000569b0000589b00005a9b00005c9b00005e9b0000
scrollPos: {x: 0, y: 116}
m_SelectedIDs: 6eb70000
m_LastClickedID: 46958
m_ExpandedIDs: 00000000b0bb0000b2bb0000b4bb0000b6bb0000b8bb0000babb0000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@@ -1207,7 +1207,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 00000000569b0000589b00005a9b00005c9b00005e9b0000
m_ExpandedIDs: 00000000b0bb0000b2bb0000b4bb0000b6bb0000b8bb0000babb0000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name: