update obstacle NPCs (Cirno + Sanae)
This commit is contained in:
parent
aa5abc16b5
commit
81009436c0
15 changed files with 188 additions and 82 deletions
|
@ -1,7 +1,8 @@
|
|||
enum UnitType {
|
||||
PLAYER,
|
||||
NPC,
|
||||
RIVAL,
|
||||
CIRNO,
|
||||
SANAE,
|
||||
}
|
||||
|
||||
enum ActionType {
|
||||
|
@ -74,13 +75,12 @@ const UNIT_TYPE_ACTIONS = {
|
|||
ActionType.RECOIL,
|
||||
ActionType.SPIN,
|
||||
],
|
||||
UnitType.NPC: [
|
||||
ActionType.MOVE,
|
||||
],
|
||||
UnitType.RIVAL: [
|
||||
ActionType.JUMP,
|
||||
ActionType.MOVE,
|
||||
],
|
||||
UnitType.CIRNO: [],
|
||||
UnitType.SANAE: [],
|
||||
}
|
||||
|
||||
const UNIT_TYPE_CURRENT_ACTIONS = {
|
||||
|
@ -90,13 +90,16 @@ const UNIT_TYPE_CURRENT_ACTIONS = {
|
|||
UnitCurrentAction.RECOILING,
|
||||
UnitCurrentAction.SPINNING,
|
||||
],
|
||||
UnitType.NPC: [
|
||||
UnitCurrentAction.IDLE,
|
||||
],
|
||||
UnitType.RIVAL: [
|
||||
UnitCurrentAction.IDLE,
|
||||
UnitCurrentAction.JUMPING,
|
||||
],
|
||||
UnitType.CIRNO: [
|
||||
UnitCurrentAction.IDLE,
|
||||
],
|
||||
UnitType.SANAE: [
|
||||
UnitCurrentAction.IDLE,
|
||||
],
|
||||
}
|
||||
|
||||
# default conditions
|
||||
|
@ -107,12 +110,17 @@ const UNIT_TYPE_CONDITIONS = {
|
|||
UnitCondition.MOVING_STATUS: UnitMovingStatus.IDLE,
|
||||
UnitCondition.IS_INVINCIBLE: false,
|
||||
},
|
||||
UnitType.NPC: {
|
||||
UnitType.RIVAL: {
|
||||
UnitCondition.CURRENT_ACTION: UnitCurrentAction.IDLE,
|
||||
UnitCondition.IS_ON_GROUND: false,
|
||||
UnitCondition.MOVING_STATUS: UnitMovingStatus.IDLE,
|
||||
},
|
||||
UnitType.RIVAL: {
|
||||
UnitType.CIRNO: {
|
||||
UnitCondition.CURRENT_ACTION: UnitCurrentAction.IDLE,
|
||||
UnitCondition.IS_ON_GROUND: false,
|
||||
UnitCondition.MOVING_STATUS: UnitMovingStatus.IDLE,
|
||||
},
|
||||
UnitType.SANAE: {
|
||||
UnitCondition.CURRENT_ACTION: UnitCurrentAction.IDLE,
|
||||
UnitCondition.IS_ON_GROUND: false,
|
||||
UnitCondition.MOVING_STATUS: UnitMovingStatus.IDLE,
|
||||
|
@ -125,9 +133,11 @@ const CURRENT_ACTION_TIMERS = {
|
|||
UnitCurrentAction.JUMPING: 0.4,
|
||||
UnitCurrentAction.RECOILING: 0.67,
|
||||
},
|
||||
UnitType.NPC: {
|
||||
UnitType.RIVAL: {
|
||||
UnitCurrentAction.JUMPING: 0.4,
|
||||
},
|
||||
UnitType.CIRNO: {},
|
||||
UnitType.SANAE: {},
|
||||
}
|
||||
|
||||
const UNIT_CONDITION_TIMERS = {
|
||||
|
@ -135,8 +145,9 @@ const UNIT_CONDITION_TIMERS = {
|
|||
UnitType.PLAYER: {
|
||||
UnitCondition.IS_INVINCIBLE: [2.5, true, false],
|
||||
},
|
||||
UnitType.NPC: {},
|
||||
UnitType.RIVAL: {},
|
||||
UnitType.CIRNO: {},
|
||||
UnitType.SANAE: {},
|
||||
}
|
||||
|
||||
# Position relative to player's origin, list of directions to check for collision
|
||||
|
@ -150,14 +161,6 @@ const ENV_COLLIDERS = {
|
|||
# contact with ground is at (0, 0)
|
||||
[Vector2(0, 0), [Direction.LEFT, Direction.DOWN, Direction.RIGHT]],
|
||||
],
|
||||
UnitType.NPC: [
|
||||
[Vector2(0, 1.5), [Direction.LEFT, Direction.UP, Direction.RIGHT]],
|
||||
[Vector2(-.25, .25), [Direction.LEFT]],
|
||||
[Vector2(.25, .25), [Direction.RIGHT]],
|
||||
[Vector2(-.25, 1.25), [Direction.LEFT]],
|
||||
[Vector2(.25, 1.25), [Direction.RIGHT]],
|
||||
[Vector2(0, 0), [Direction.LEFT, Direction.DOWN, Direction.RIGHT]],
|
||||
],
|
||||
UnitType.RIVAL: [
|
||||
[Vector2(0, 1.5), [Direction.LEFT, Direction.UP, Direction.RIGHT]],
|
||||
[Vector2(-.25, .25), [Direction.LEFT]],
|
||||
|
@ -167,6 +170,22 @@ const ENV_COLLIDERS = {
|
|||
# contact with ground is at (0, 0)
|
||||
[Vector2(0, 0), [Direction.LEFT, Direction.DOWN, Direction.RIGHT]],
|
||||
],
|
||||
UnitType.CIRNO: [
|
||||
[Vector2(0, 1.5), [Direction.LEFT, Direction.UP, Direction.RIGHT]],
|
||||
[Vector2(-.25, .25), [Direction.LEFT]],
|
||||
[Vector2(.25, .25), [Direction.RIGHT]],
|
||||
[Vector2(-.25, 1.25), [Direction.LEFT]],
|
||||
[Vector2(.25, 1.25), [Direction.RIGHT]],
|
||||
[Vector2(0, 0), [Direction.LEFT, Direction.DOWN, Direction.RIGHT]],
|
||||
],
|
||||
UnitType.SANAE: [
|
||||
[Vector2(0, 1.5), [Direction.LEFT, Direction.UP, Direction.RIGHT]],
|
||||
[Vector2(-.25, .25), [Direction.LEFT]],
|
||||
[Vector2(.25, .25), [Direction.RIGHT]],
|
||||
[Vector2(-.25, 1.25), [Direction.LEFT]],
|
||||
[Vector2(.25, 1.25), [Direction.RIGHT]],
|
||||
[Vector2(0, 0), [Direction.LEFT, Direction.DOWN, Direction.RIGHT]],
|
||||
],
|
||||
}
|
||||
|
||||
const INPUT_MAP = {
|
||||
|
@ -213,27 +232,31 @@ const UNIT_SPRITES = {
|
|||
SpriteClass.JUMP: [false, ["Jump1", "Jump2"]],
|
||||
SpriteClass.RECOIL: [false, ["Recoil"]],
|
||||
},
|
||||
UnitType.NPC: {
|
||||
SpriteClass.IDLE: [false, ["Idle"]],
|
||||
SpriteClass.WALK: [true, ["Walk"]],
|
||||
SpriteClass.JUMP: [false, ["Jump2"]],
|
||||
},
|
||||
UnitType.RIVAL: {
|
||||
SpriteClass.IDLE: [false, ["Idle"]],
|
||||
SpriteClass.WALK: [false, ["Move0", "Move-1", "Move-2", "Move+1", "Move+2"]],
|
||||
SpriteClass.JUMP: [false, ["Move0"]],
|
||||
},
|
||||
UnitType.CIRNO: {
|
||||
SpriteClass.IDLE: [false, ["Idle"]],
|
||||
SpriteClass.JUMP: [false, ["Idle"]],
|
||||
},
|
||||
UnitType.SANAE: {
|
||||
SpriteClass.IDLE: [false, ["Idle"]],
|
||||
SpriteClass.JUMP: [false, ["Idle"]],
|
||||
},
|
||||
}
|
||||
|
||||
const UNIT_TYPE_MOVE_SPEEDS = {
|
||||
UnitType.PLAYER: 5,
|
||||
UnitType.NPC: 3,
|
||||
UnitType.RIVAL: 5,
|
||||
UnitType.CIRNO: 0,
|
||||
UnitType.SANAE: 0,
|
||||
}
|
||||
|
||||
const UNIT_TYPE_JUMP_SPEEDS = {
|
||||
UnitType.PLAYER: 4.5,
|
||||
UnitType.RIVAL: 4.5,
|
||||
UnitType.PLAYER: 4.5,
|
||||
}
|
||||
|
||||
const SCALE_FACTOR = 1
|
||||
|
|
|
@ -13,7 +13,8 @@ export var camera_h_offset : float = 1
|
|||
const Constants = preload("res://Scripts/Constants.gd")
|
||||
const Unit = preload("res://Scripts/Unit.gd")
|
||||
const UNIT_DIRECTORY = {
|
||||
Constants.UnitType.NPC: preload("res://Units/DownhillAutoscrollerNPC.tscn"),
|
||||
Constants.UnitType.CIRNO: preload("res://Units/DownhillAutoscrollerNPCCirno.tscn"),
|
||||
Constants.UnitType.SANAE: preload("res://Units/DownhillAutoscrollerNPCSanae.tscn"),
|
||||
}
|
||||
|
||||
# positions to unit string
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue