mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-10 10:08:18 +00:00
tweaked the gameplay a bit
This commit is contained in:
parent
c164ba3518
commit
2aafe11723
|
@ -397,9 +397,9 @@ void CHARACTER_CORE::tick(bool use_input)
|
|||
|
||||
}
|
||||
|
||||
// release hook
|
||||
// release hook (max hook time is 1.25
|
||||
hook_tick++;
|
||||
if(hooked_player != -1 && (hook_tick > SERVER_TICK_SPEED*2 || !world->characters[hooked_player]))
|
||||
if(hooked_player != -1 && (hook_tick > SERVER_TICK_SPEED+SERVER_TICK_SPEED/5 || !world->characters[hooked_player]))
|
||||
{
|
||||
hooked_player = -1;
|
||||
hook_state = HOOK_RETRACTED;
|
||||
|
|
|
@ -290,6 +290,7 @@ void CHARACTER::fire_weapon()
|
|||
game.create_sound(pos, SOUND_HAMMER_FIRE);
|
||||
|
||||
CHARACTER *ents[64];
|
||||
int hits = 0;
|
||||
int num = game.world.find_entities(pos+direction*phys_size*0.75f, phys_size*0.5f, (ENTITY**)ents, 64, NETOBJTYPE_CHARACTER);
|
||||
|
||||
for (int i = 0; i < num; i++)
|
||||
|
@ -311,8 +312,13 @@ void CHARACTER::fire_weapon()
|
|||
dir = vec2(0,-1);
|
||||
|
||||
target->core.vel += normalize(dir + vec2(0,-1.1f)) * 10.0f;
|
||||
hits++;
|
||||
}
|
||||
|
||||
// if we hit anything, we have to wait for the reload
|
||||
if(hits)
|
||||
reload_timer = server_tickspeed()/3;
|
||||
|
||||
} break;
|
||||
|
||||
case WEAPON_GUN:
|
||||
|
@ -422,7 +428,8 @@ void CHARACTER::fire_weapon()
|
|||
if(weapons[active_weapon].ammo > 0) // -1 == unlimited
|
||||
weapons[active_weapon].ammo--;
|
||||
attack_tick = server_tick();
|
||||
reload_timer = data->weapons.id[active_weapon].firedelay * server_tickspeed() / 1000;
|
||||
if(!reload_timer)
|
||||
reload_timer = data->weapons.id[active_weapon].firedelay * server_tickspeed() / 1000;
|
||||
}
|
||||
|
||||
int CHARACTER::handle_weapons()
|
||||
|
@ -520,64 +527,6 @@ void CHARACTER::on_direct_input(NETOBJ_PLAYER_INPUT *new_input)
|
|||
|
||||
void CHARACTER::tick()
|
||||
{
|
||||
//input = latest_input;
|
||||
|
||||
// grab latest input
|
||||
/*
|
||||
{
|
||||
int size = 0;
|
||||
int *input = server_latestinput(client_id, &size);
|
||||
if(input)
|
||||
{
|
||||
mem_copy(&latest_previnput, &latest_input, sizeof(latest_input));
|
||||
mem_copy(&latest_input, input, sizeof(latest_input));
|
||||
}
|
||||
}*/
|
||||
|
||||
// check if we have enough input
|
||||
// this is to prevent initial weird clicks
|
||||
/*
|
||||
if(num_inputs < 2)
|
||||
{
|
||||
latest_previnput = latest_input;
|
||||
previnput = input;
|
||||
}*/
|
||||
|
||||
//game.world.core.players[player->client_id] = &core;
|
||||
|
||||
// enable / disable physics
|
||||
/*
|
||||
if(team == -1 || dead)
|
||||
{
|
||||
game.world.core.players[client_id] = 0;
|
||||
//game.world.remove_entity(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
game.world.core.players[client_id] = &core;
|
||||
//game.world._entity(this);
|
||||
}
|
||||
|
||||
// spectator
|
||||
if(team == -1)
|
||||
return;
|
||||
|
||||
if(spawning)
|
||||
try_respawn();
|
||||
|
||||
// TODO: rework the input to be more robust
|
||||
if(dead)
|
||||
{
|
||||
if(server_tick()-die_tick >= server_tickspeed()/2 && count_input(latest_previnput.fire, latest_input.fire).presses)
|
||||
die_tick = -1;
|
||||
if(server_tick()-die_tick >= server_tickspeed()*5) // auto respawn after 3 sec
|
||||
respawn();
|
||||
//if((input.fire&1) && server_tick()-die_tick >= server_tickspeed()/2) // auto respawn after 0.5 sec
|
||||
//respawn();
|
||||
return;
|
||||
}
|
||||
* */
|
||||
|
||||
if(player->force_balanced)
|
||||
{
|
||||
char buf[128];
|
||||
|
|
|
@ -79,8 +79,8 @@ void GAMECONTEXT::create_explosion(vec2 p, int owner, int weapon, bool bnodamage
|
|||
{
|
||||
// deal damage
|
||||
CHARACTER *ents[64];
|
||||
float radius = 128.0f;
|
||||
float innerradius = 42.0f;
|
||||
float radius = 135.0f;
|
||||
float innerradius = 48.0f;
|
||||
int num = game.world.find_entities(p, radius, (ENTITY**)ents, 64, NETOBJTYPE_CHARACTER);
|
||||
for(int i = 0; i < num; i++)
|
||||
{
|
||||
|
|
|
@ -23,9 +23,9 @@ MACRO_TUNING_PARAM(gun_speed, 2200.0f)
|
|||
MACRO_TUNING_PARAM(gun_lifetime, 2.0f)
|
||||
|
||||
MACRO_TUNING_PARAM(shotgun_curvature, 1.25f)
|
||||
MACRO_TUNING_PARAM(shotgun_speed, 2200.0f)
|
||||
MACRO_TUNING_PARAM(shotgun_speed, 2750.0f)
|
||||
MACRO_TUNING_PARAM(shotgun_speeddiff, 0.8f)
|
||||
MACRO_TUNING_PARAM(shotgun_lifetime, 0.25f)
|
||||
MACRO_TUNING_PARAM(shotgun_lifetime, 0.20f)
|
||||
|
||||
MACRO_TUNING_PARAM(grenade_curvature, 7.0f)
|
||||
MACRO_TUNING_PARAM(grenade_speed, 1000.0f)
|
||||
|
|
Loading…
Reference in a new issue