Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
GameDevWeek
Wintersemester 2018-2019
Unity
Suck It
Commits
86fcd798
Commit
86fcd798
authored
Mar 28, 2019
by
Sebastian Frey
Browse files
charges für das Element hinzugefügt
parent
65c57136
Changes
14
Hide whitespace changes
Inline
Side-by-side
Assets/_Game/Data/Game Events/Element Game Events/ChargeGameEvent.asset
0 → 100644
View file @
86fcd798
%YAML
1.1
%TAG
!u!
tag:unity3d.com,2011:
---
!u!114
&11400000
MonoBehaviour
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
0
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
e69f8fd89dc139a49b0d4d154f5497dd
,
type
:
3
}
m_Name
:
ChargeGameEvent
m_EditorClassIdentifier
:
Assets/_Game/Data/Game Events/Element Game Events/ChargeGameEvent.asset.meta
0 → 100644
View file @
86fcd798
fileFormatVersion: 2
guid: 6ec6544f645a9d1458383b111fcaf8b6
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
Assets/_Game/Data/Player Data/PlayerState.asset
View file @
86fcd798
...
...
@@ -12,6 +12,7 @@ MonoBehaviour:
m_Script
:
{
fileID
:
11500000
,
guid
:
353b156b7c59b1c45a8767d7500b31fb
,
type
:
3
}
m_Name
:
PlayerState
m_EditorClassIdentifier
:
currentInfusedElement
:
2
currentMoveState
:
jumpForce
:
0
smoothing
:
0
...
...
@@ -21,10 +22,4 @@ MonoBehaviour:
mass
:
0
gravity
:
0
movementStates
:
{
fileID
:
11400000
,
guid
:
c757aad6925b37a46b916f609fa9012b
,
type
:
2
}
currentJumpForce
:
0
currentSmoothing
:
0
currentAirControl
:
0
currentMoveSpeed
:
0
currentMaxJumpCount
:
0
currentMass
:
0
currentGravity
:
0
charges
:
4
Assets/_Game/Prefabs/Elemental Attacks/WaterAttack.prefab
View file @
86fcd798
...
...
@@ -98,7 +98,7 @@ Rigidbody2D:
m_LinearDrag
:
0
m_AngularDrag
:
0.05
m_GravityScale
:
1
m_Material
:
{
fileID
:
0
}
m_Material
:
{
fileID
:
6200000
,
guid
:
58a62fd7692ebb24bbefaaac19fed6fc
,
type
:
2
}
m_Interpolate
:
0
m_SleepingMode
:
1
m_CollisionDetection
:
0
...
...
Assets/_Game/Scenes/Pick_Up_Test_Scene.unity
View file @
86fcd798
...
...
@@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity
:
1
m_CustomReflection
:
{
fileID
:
0
}
m_Sun
:
{
fileID
:
0
}
m_IndirectSpecularColor
:
{
r
:
0.180283
78
,
g
:
0.22571
412
,
b
:
0.30692
285
,
a
:
1
}
m_IndirectSpecularColor
:
{
r
:
0.180283
34
,
g
:
0.22571
328
,
b
:
0.30692
17
,
a
:
1
}
m_UseRadianceAmbientProbe
:
0
---
!u!157
&3
LightmapSettings
:
...
...
@@ -1050,6 +1050,7 @@ MonoBehaviour:
m_EditorClassIdentifier
:
state
:
{
fileID
:
11400000
,
guid
:
c5777bcc7b64ce24c9bd65d2c4b7c639
,
type
:
2
}
onElementInfused
:
{
fileID
:
11400000
,
guid
:
7e5b80a8353af1846a878c3a997bdb4a
,
type
:
2
}
onChargeChange
:
{
fileID
:
11400000
,
guid
:
6ec6544f645a9d1458383b111fcaf8b6
,
type
:
2
}
---
!u!4
&1876157337
stripped
Transform
:
m_CorrespondingSourceObject
:
{
fileID
:
52145075018362285
,
guid
:
2e3528907311e438dab0d393127aa332
,
...
...
Assets/_Game/Scripts/Player/PlayerAttacks/Water/PlayerWaterAttack.cs
View file @
86fcd798
...
...
@@ -16,21 +16,38 @@ namespace _Game.Scripts.Player.PlayerAttacks.Water
public
Transform
shotSpawn
;
public
GameObject
elementalAttack
;
private
bool
_ready
;
private
bool
_activated
;
private
void
Start
()
{
_nextFire
=
0.0f
;
_ready
=
true
;
_activated
=
false
;
}
private
void
Update
()
{
if
(!
Input
.
GetButtonDown
(
"Fire1"
)
||
!(
Time
.
time
>
_nextFire
))
return
;
_ready
=
Time
.
time
>
_nextFire
;
if
(!
_activated
)
return
;
Debug
.
Log
(
"Water_Attack"
);
_nextFire
=
_nextFir
e
+
cooldown
;
print
(
"Water_Attack"
);
_nextFire
=
Time
.
tim
e
+
cooldown
;
StartCoroutine
(
Fire
());
}
public
bool
Attack
()
{
if
(
_ready
)
{
_activated
=
true
;
}
return
_ready
;
}
private
IEnumerator
Fire
()
{
for
(
var
i
=
0
;
i
<
volleySize
;
i
++)
...
...
@@ -47,6 +64,8 @@ namespace _Game.Scripts.Player.PlayerAttacks.Water
projectile
.
GetComponent
<
Rigidbody2D
>().
velocity
=
direction
*
launchPower
;
yield
return
new
WaitForSeconds
(
attackSpeed
);
}
_activated
=
false
;
}
}
}
Assets/_Game/Scripts/Player/PlayerAttacks/Water/PlayerWaterProjectile.cs
View file @
86fcd798
...
...
@@ -24,14 +24,18 @@ namespace _Game.Scripts.Player.PlayerAttacks.Water
private
void
Update
()
{
_deltaTime
=
(
Time
.
time
-
_startTime
)
/
destroyTime
;
print
(
"t: "
+
_deltaTime
);
_newScaleFactor
=
_deltaTime
*
(
1
-
_deltaTime
)
*
(
1
-
_deltaTime
)
/
0.1481481481481f
;
print
(
"f("
+
_deltaTime
+
")= "
+
_newScaleFactor
);
if
(
_deltaTime
>=
0.8f
)
{
_newScaleFactor
=
(
1
-
_deltaTime
)
*
5.0f
;
}
else
{
_newScaleFactor
=
1.0f
;
}
_newScaleVector
=
new
Vector3
(
_newScaleFactor
,
_newScaleFactor
,
0.0f
);
_newScaleVector
=
new
Vector3
(
_newScaleFactor
*
_startingScale
.
x
,
_newScaleFactor
*
_startingScale
.
y
,
0.0f
);
this
.
gameObject
.
transform
.
localScale
=
_newScaleVector
;
_rigidbody2D
.
velocity
=
_startingVelocity
*
(
1
-
(
1
-
_deltaTime
)
*
(
1
-
_deltaTime
));
}
private
void
OnEnable
()
...
...
Assets/_Game/Scripts/Player/PlayerInteract.cs
View file @
86fcd798
using
UnityEngine
;
using
System
;
using
UnityEngine
;
using
_Game.Scripts.Elements
;
using
_Game.Scripts.Player.PlayerAttacks.Air
;
using
_Game.Scripts.Player.PlayerAttacks.Earth
;
...
...
@@ -10,7 +11,6 @@ namespace _Game.Scripts.Player
{
public
class
PlayerInteract
:
MonoBehaviour
{
private
GameObject
_currentObject
;
private
InteractionObject
_targetScript
;
...
...
@@ -18,6 +18,8 @@ namespace _Game.Scripts.Player
[
SerializeField
]
private
ElementGameEvent
onElementInfused
;
[
SerializeField
]
private
ChargeGameEvent
onChargeChange
;
private
PlayerAirAttack
_airAttack
;
private
PlayerEarthAttack
_earthAttack
;
private
Player_FireAttack
_fireAttack
;
...
...
@@ -33,13 +35,55 @@ namespace _Game.Scripts.Player
private
void
Update
()
{
if
(
Input
.
GetButtonDown
(
"Fire1"
))
{
switch
(
state
.
GetCurrentElement
())
{
case
InfusedElement
.
Air
:
// if(_waterAttack.Attack())
// {
// state.ChangeCharges(-1);
// onChargeChange.Raise();
// }
break
;
case
InfusedElement
.
Earth
:
// if(_waterAttack.Attack())
// {
// state.ChangeCharges(-1);
// onChargeChange.Raise();
// }
break
;
case
InfusedElement
.
Fire
:
// if(_waterAttack.Attack())
// {
// state.ChangeCharges(-1);
// onChargeChange.Raise();
// }
// break;
case
InfusedElement
.
Water
:
print
(
"done"
);
if
(
_waterAttack
.
Attack
())
{
state
.
ChangeCharges
(-
1
);
onChargeChange
.
Raise
();
}
break
;
case
InfusedElement
.
None
:
break
;
default
:
throw
new
ArgumentOutOfRangeException
();
}
}
if
(!
Input
.
GetButtonDown
(
"Interact"
)
||
!
_currentObject
)
return
;
switch
(
_currentObject
.
tag
)
{
case
"Air"
:
state
.
UpdateElement
(
InfusedElement
.
Air
);
state
.
ChangeCharges
(
3
);
onElementInfused
.
Raise
(
InfusedElement
.
Air
);
onChargeChange
.
Raise
();
_airAttack
.
enabled
=
true
;
_earthAttack
.
enabled
=
false
;
_fireAttack
.
enabled
=
false
;
...
...
@@ -47,7 +91,9 @@ namespace _Game.Scripts.Player
break
;
case
"Earth"
:
state
.
UpdateElement
(
InfusedElement
.
Earth
);
state
.
ChangeCharges
(
3
);
onElementInfused
.
Raise
(
InfusedElement
.
Earth
);
onChargeChange
.
Raise
();
_airAttack
.
enabled
=
false
;
_earthAttack
.
enabled
=
true
;
_fireAttack
.
enabled
=
false
;
...
...
@@ -55,7 +101,9 @@ namespace _Game.Scripts.Player
break
;
case
"Fire"
:
state
.
UpdateElement
(
InfusedElement
.
Fire
);
state
.
ChangeCharges
(
3
);
onElementInfused
.
Raise
(
InfusedElement
.
Fire
);
onChargeChange
.
Raise
();
_airAttack
.
enabled
=
false
;
_earthAttack
.
enabled
=
false
;
_fireAttack
.
enabled
=
true
;
...
...
@@ -63,7 +111,9 @@ namespace _Game.Scripts.Player
break
;
case
"Water"
:
state
.
UpdateElement
(
InfusedElement
.
Water
);
state
.
ChangeCharges
(
3
);
onElementInfused
.
Raise
(
InfusedElement
.
Water
);
onChargeChange
.
Raise
();
_airAttack
.
enabled
=
false
;
_earthAttack
.
enabled
=
false
;
_fireAttack
.
enabled
=
false
;
...
...
@@ -71,7 +121,9 @@ namespace _Game.Scripts.Player
break
;
default
:
state
.
UpdateElement
(
InfusedElement
.
None
);
state
.
ChangeCharges
(
3
);
onElementInfused
.
Raise
(
InfusedElement
.
None
);
onChargeChange
.
Raise
();
_airAttack
.
enabled
=
false
;
_earthAttack
.
enabled
=
false
;
_fireAttack
.
enabled
=
false
;
...
...
@@ -86,7 +138,7 @@ namespace _Game.Scripts.Player
{
if
(
other
.
gameObject
.
layer
!=
LayerMask
.
NameToLayer
(
"Elements"
))
return
;
Debug
.
Log
(
"Entered Collider of "
+
other
.
name
);
print
(
"Entered Collider of "
+
other
.
name
);
_currentObject
=
other
.
gameObject
;
_targetScript
=
_currentObject
.
GetComponent
<
InteractionObject
>();
}
...
...
@@ -96,7 +148,7 @@ namespace _Game.Scripts.Player
if
(
other
.
gameObject
.
layer
!=
LayerMask
.
NameToLayer
(
"Elements"
))
return
;
if
(
other
.
gameObject
!=
_currentObject
)
return
;
Debug
.
Log
(
"Exited Collider of "
+
other
.
name
);
print
(
"Exited Collider of "
+
other
.
name
);
_currentObject
=
null
;
_targetScript
=
null
;
}
...
...
Assets/_Game/Scripts/Scriptable Object/ChargeGameEvent.cs
0 → 100644
View file @
86fcd798
using
System.Collections.Generic
;
using
UnityEngine
;
namespace
_Game.Scripts.Scriptable_Object
{
[
CreateAssetMenu
(
fileName
=
"New Charge Game Event"
,
menuName
=
"Charge Game Event"
,
order
=
53
)]
public
class
ChargeGameEvent
:
ScriptableObject
{
private
readonly
List
<
ChargeGameEventListener
>
_listeners
=
new
List
<
ChargeGameEventListener
>();
public
void
Raise
()
{
for
(
var
i
=
_listeners
.
Count
-
1
;
i
>=
0
;
i
--)
{
_listeners
[
i
].
OnEventRaised
();
}
}
public
void
RegisterListener
(
ChargeGameEventListener
listener
)
{
_listeners
.
Add
(
listener
);
}
public
void
UnregisterListener
(
ChargeGameEventListener
listener
)
{
_listeners
.
Remove
(
listener
);
}
}
}
Assets/_Game/Scripts/Scriptable Object/ChargeGameEvent.cs.meta
0 → 100644
View file @
86fcd798
fileFormatVersion: 2
guid: e69f8fd89dc139a49b0d4d154f5497dd
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Assets/_Game/Scripts/Scriptable Object/ChargeGameEventListener.cs
0 → 100644
View file @
86fcd798
using
UnityEngine
;
using
UnityEngine.Events
;
namespace
_Game.Scripts.Scriptable_Object
{
public
class
ChargeGameEventListener
:
MonoBehaviour
{
[
SerializeField
]
private
ChargeGameEvent
gameEvent
;
[
SerializeField
]
private
UnityEvent
response
;
private
void
OnEnable
()
{
gameEvent
.
RegisterListener
(
this
);
}
private
void
OnDisable
()
{
gameEvent
.
UnregisterListener
(
this
);
}
public
void
OnEventRaised
()
{
response
.
Invoke
();
}
}
}
Assets/_Game/Scripts/Scriptable Object/ChargeGameEventListener.cs.meta
0 → 100644
View file @
86fcd798
fileFormatVersion: 2
guid: cae13dfa42160034cbe0b3a99bd73368
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Assets/_Game/Scripts/Scriptable Object/MovementStates.cs
View file @
86fcd798
...
...
@@ -5,7 +5,7 @@ using UnityEngine.Serialization;
namespace
_Game.Scripts.Scriptable_Object
{
[
CreateAssetMenu
(
fileName
=
"New Movement State"
,
menuName
=
"Movement State"
,
order
=
5
3
)]
[
CreateAssetMenu
(
fileName
=
"New Movement State"
,
menuName
=
"Movement State"
,
order
=
5
4
)]
public
class
MovementStates
:
ScriptableObject
{
public
MovementState
airMoveState
;
...
...
Assets/_Game/Scripts/Scriptable Object/PlayerState.cs
View file @
86fcd798
...
...
@@ -11,22 +11,25 @@ namespace _Game.Scripts.Scriptable_Object
[
CreateAssetMenu
(
fileName
=
"New Player State"
,
menuName
=
"Player State"
,
order
=
51
)]
public
class
PlayerState
:
ScriptableObject
{
//[SerializeField] private InfusedElement currentInfusedElement;
[
SerializeField
]
private
InfusedElement
currentInfusedElement
;
[
SerializeField
]
private
MovementState
currentMoveState
;
[
SerializeField
]
private
MovementStates
movementStates
;
[
SerializeField
]
private
float
currentJumpForce
;
[
SerializeField
]
private
float
currentSmoothing
;
[
SerializeField
]
private
bool
currentAirControl
;
[
SerializeField
]
private
float
currentMoveSpeed
;
[
SerializeField
]
private
int
currentMaxJumpCount
;
[
SerializeField
]
private
float
currentMass
;
[
SerializeField
]
private
float
currentGravity
;
[
SerializeField
][
Range
(
0
,
5
)]
private
int
charges
;
// [SerializeField] private float currentJumpForce;
// [SerializeField] private float currentSmoothing;
// [SerializeField] private bool currentAirControl;
// [SerializeField] private float currentMoveSpeed;
// [SerializeField] private int currentMaxJumpCount;
// [SerializeField] private float currentMass;
// [SerializeField] private float currentGravity;
public
void
UpdateElement
(
InfusedElement
newElement
)
{
//
currentInfusedElement = newElement;
currentInfusedElement
=
newElement
;
currentMoveState
=
movementStates
.
GetMovementState
(
newElement
);
}
...
...
@@ -34,6 +37,32 @@ namespace _Game.Scripts.Scriptable_Object
{
return
currentMoveState
;
}
public
void
ChangeCharges
(
int
amount
)
{
if
((
charges
+
amount
)
>
5
)
{
charges
=
5
;
}
else
if
((
charges
+
amount
)
<=
0
)
{
charges
=
0
;
currentInfusedElement
=
InfusedElement
.
None
;
}
else
{
charges
+=
amount
;
}
}
public
int
GetCharges
()
{
return
charges
;
}
public
InfusedElement
GetCurrentElement
()
{
return
currentInfusedElement
;
}
}
public
enum
InfusedElement
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment