From f0eab98e417bf648261a9027bef91fe935af76cb Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sat, 20 Feb 2021 13:34:04 -0500 Subject: Added variable movement speed Ionia now moves at half Lucas's speed, which I think is good for NPCs. --- src/character_system.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/character_system.cpp') diff --git a/src/character_system.cpp b/src/character_system.cpp index 7d456f6..e6dddf6 100644 --- a/src/character_system.cpp +++ b/src/character_system.cpp @@ -7,9 +7,10 @@ #include "animation_system.h" #include "script_system.h" -void CharacterSystem::initSprite(int spriteId) { +void CharacterSystem::initSprite(int spriteId, int movementSpeed) { Sprite& sprite = game_.getSprite(spriteId); sprite.orientable = true; + sprite.movementSpeed = movementSpeed; } void CharacterSystem::addSpriteToParty(int leaderId, int followerId) { @@ -29,8 +30,10 @@ void CharacterSystem::addSpriteToParty(int leaderId, int followerId) { toFace = directionFacingPoint(targetPos - follower.loc); } - for (int i=0; i(PARTY_FRAME_DELAY) + targetPos; + int truePartyDelay = PARTY_FRAME_DELAY / leader.movementSpeed; + + for (int i=0; i(truePartyDelay) + targetPos; follower.trail.push_front({.pos = tween, .dir = toFace}); } @@ -101,7 +104,7 @@ void CharacterSystem::tick(double dt) { continue; } - int speed = MOVEMENT_SPEED; + int speed = sprite.movementSpeed; if (sprite.characterState == CharacterState::Running) { speed *= 2; } -- cgit 1.4.1