Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hordes nolight #8108

Closed
wants to merge 55 commits into from

Conversation

Projects
None yet
6 participants
@Reaper42
Copy link
Contributor

commented Jul 2, 2014

Hordes.

  • more zombie groups, but less monsters count in it.
  • crossovermap signals and hordes moving
  • information about horde size and speed on map
  • more fast debug
  • tracks
  • removed light signals

user and others added some commits Mar 14, 2014

user
Merge branch 'master' into hordes
Conflicts:
	src/game.cpp
	src/overmap.cpp
	src/overmapbuffer.cpp
	src/overmapbuffer.h
	src/player.cpp
	src/player.h
@John-Candlebury

This comment has been minimized.

Copy link
Contributor

commented Jul 2, 2014

So I like a bunch of the things in here, especially the increase of groups, but I must say that I am not a very big fan of the overmap tracks, mostly because there seems to be no way to avoid leaving tracks on the overmap unless its raining or anything else that leaves tracks other than the player. And partly because this are zombies we are talking about, not expert hunters or hunting hounds, it seems far fetched that they would be able to track you proficiently.

I mean, attracting hordes when you turn on a generator or lets say lower a bridge is excellent gameplay. But being forced to run for days from an angry mob of undead that is magically homing on you doesn't sound very fun on my end.

@Headjack

This comment has been minimized.

Copy link

commented Jul 2, 2014

I'd agree with John, it feels like loud sounds within range of the horde and nighttime lights are a more likely stimulus for them to come and investigate you.

@kevingranade

This comment has been minimized.

Copy link
Member

commented Jul 2, 2014

Zombies tracking you by scent should be pretty short term, the trail should
go cold after an hour or less (probably much less (this is an ideal, I
haven't had a chance to look at the implementation yet)). Certain mobs,
like dogs, zombie dogs, and ants should be able to track you for a long
time, but until we can split them off from the rest of the horde that needs
to be on hold.
Tactically though, cross a river? If that doesn't stop the trail, it
should, and I'll double check that the dumb rusting mechanic has been
removed.

@Reaper42

This comment has been minimized.

Copy link
Contributor Author

commented Jul 3, 2014

Tactically though, cross a river?

Yes. I forgot do terran check.

Zombies tracking you by scent should be pretty short term, the trail should go cold after an hour or less

I assume that in the horde have dogs that are remaining.
If weather is sunny/clear each 20 minutes remove 5% tracks. If rain - 50%, if cloude/drizzle - 1%. I think, we need a good cynologist to balance it.

nighttime lights

I cut lights signals because me offer them to any direct light (random lava, console, Z-shocker etc)

but I must say that I am not a very big fan of the overmap tracks

I can make them switchable for you.

g->weather != WEATHER_THUNDER ||
g->weather != WEATHER_SNOW ||
g->weather != WEATHER_SNOWSTORM ) {
layer[OVERMAP_GROUND_LEVEL].pl_track[x][y] = turn;

This comment has been minimized.

Copy link
@kevingranade

kevingranade Jul 5, 2014

Member

You can just call calendar::turn here, no need to pass that value into the method.

This comment has been minimized.

Copy link
@Reaper42

Reaper42 Jul 5, 2014

Author Contributor

Ok.

This comment has been minimized.

Copy link
@Reaper42

Reaper42 Jul 7, 2014

Author Contributor

I can't do that because i remove tracks with this method too.

}

void overmap::place_tracks(const int x, const int y, const int turn) {
if (layer != NULL && x <= OMAPX*2 && y <= OMAPY*2 && x >= 0 && y >= 0 ) {

This comment has been minimized.

Copy link
@kevingranade

kevingranade Jul 5, 2014

Member

Instead of pl_track being double the size of an overmap, it should match the rest of the overmap data, and convert the coordinates to match either before or after being passed into this method.

This comment has been minimized.

Copy link
@Reaper42

Reaper42 Jul 5, 2014

Author Contributor

pl_track match with mongroup coordinates. What problem? point overmap::to_big_overmap_coord(point p) - converts this coords for map view.


void overmap::place_tracks(const int x, const int y, const int turn) {
if (layer != NULL && x <= OMAPX*2 && y <= OMAPY*2 && x >= 0 && y >= 0 ) {
if (g->weather != WEATHER_ACID_RAIN ||

This comment has been minimized.

Copy link
@kevingranade

kevingranade Jul 5, 2014

Member

This should place tracks unconditionally, and have the monster check if they're able to detect it when they're tracking.

This comment has been minimized.

Copy link
@Reaper42

Reaper42 Jul 5, 2014

Author Contributor

What is "this?" Signal_horde_noise? to_big_overmapcoord? signal_hordes?
Now are only scent track. In wet weather no reason to place it.

}
}

void overmap::update_tracks() {

This comment has been minimized.

Copy link
@kevingranade

kevingranade Jul 5, 2014

Member

Instead of aging the tracks, we should just account for intervening weather when the monster tries to track the player. The weather is available via game::weather_log, which is a std::map<int, weather_segment>. The int is the turn when that weather condition started, and weather_segment has the temperature and weather type that was occurring during that time period. You can look at weather::fill_funnels() for an example of historical weather data being used.

The reason for this is that different monsters might be able to track based on different things, for example a NPC or intelligent robot might be able to track based on traces that weather won't wash away as rapidly, while wolves will be able to track based on scent for a long time. There might even be a creature that has a supernatural ability to track the player, and just succeeds dispute any intervening weather conditions.

This comment has been minimized.

Copy link
@Reaper42

Reaper42 Jul 5, 2014

Author Contributor

I remember that filling funnels don't work correctly. Weather_log - is global? Finally i don't think, that this way is more better than run over vector<int*> periodically. With large count of NPC and wild animal groups iteration count be will be very different.
I can add recalc code in overmap::track_at. But i don't know trust it or not.

@kevingranade

This comment has been minimized.

Copy link
Member

commented Jul 5, 2014

This needs to comply with the project coding style, you can't just use whatever style you want. It'd documented in doc/CODING_STYLE.md

@Reaper42

This comment has been minimized.

Copy link
Contributor Author

commented Jul 7, 2014

$ astyle --style=1tbs --indent=spaces=4 --align-pointer=name --max-code-length=100 --break-after-logical --indent-classes --indent-preprocessor --indent-col1-comments --min-conditional-indent=0 --pad-oper --add-brackets --convert-tabs
Invalid command line options:
max-code-length=100
break-after-logical
$ astyle --version
Artistic Style Version 2.01

You version of astyle is? ...
Update is doc/CODING_STYLE.md

Ok 1 get 2.03
Why do not you make astyle for all code?

@kevingranade

This comment has been minimized.

Copy link
Member

commented Jul 7, 2014

Because running astyle across the entire codebase is liable to cause breakage that it would then be difficult to impossible to trace to the cause.

@Reaper42

This comment has been minimized.

Copy link
Contributor Author

commented Jul 7, 2014

Have you tried to do it?

@KA101

This comment has been minimized.

Copy link
Contributor

commented Jul 7, 2014

Kevin was considering a full-code astyle that the other day, so if he's determined that it's likely to break something, I'll believe that he's looked and has reason to ease off. (If it was safe to do, he'd do it.)

@Reaper42

This comment has been minimized.

Copy link
Contributor Author

commented Jul 7, 2014

Hm...I do astyle now, compile and run. All ok, but need more testing.

@Reaper42

This comment has been minimized.

Copy link
Contributor Author

commented Jul 7, 2014

About you weather log. I dislike him because It is not easy to use. I have no problem with tracks now. If someone has problems i can do vector<int*>. If you want track update with weather log write something like:

vector get_weather_statistic(int from_turn, int to_turn)

where vector's index = weather_type and int = length of weather in turns.

@KA101

This comment has been minimized.

Copy link
Contributor

commented Jul 26, 2014

Given the weather rework, I'm thinking this'll need adjusted. Between that and Kevin's change requests, that's why I haven't scheduled it for testing.

@Cosmitz

This comment has been minimized.

Copy link
Contributor

commented Jul 31, 2014

In regards to hordes, is there a limit to the maximum number of zombies per large horde? I ran into one some 110 zombies strong. That intended?

It was a freshly made map which i ran south for a good deal testing something else and found these.

@Reaper42

This comment has been minimized.

Copy link
Contributor Author

commented Aug 1, 2014

Last month Kevin don't care about all this. I think he don't care now.
Weather is correctly work? You have good code interface? You not plan change it? Someone care it?

h_size = rng(1, 4) * 80;

Max horde size - 360 heads.

@kevingranade

This comment has been minimized.

Copy link
Member

commented Aug 1, 2014

The last action on the PR was me raising several issues with the PR and you
stating they weren't problems, or that they were too hard to fix. If I
raise issues and you ignore them, there's very little chance that the
change will get merged.

@Reaper42

This comment has been minimized.

Copy link
Contributor Author

commented Aug 3, 2014

You about way to refresh scent map? I reply questions:
Weather is correctly work? You have code interface? You not plan change it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.