added Jetryl's animation for Shyde healing
|
@ -1,7 +1,7 @@
|
|||
[scenario]
|
||||
name="Mountain Pass"
|
||||
turns=30
|
||||
map_data="{maps/Heir_To_The_Throne/Mountain_Pass}"
|
||||
turns=24
|
||||
|
||||
{DAWN}
|
||||
{MORNING}
|
||||
|
@ -84,7 +84,7 @@ Defeat:
|
|||
leader_value=10
|
||||
aggression=1.0
|
||||
[/ai]
|
||||
{GOLD 150 250 350}
|
||||
{GOLD 50 100 200}
|
||||
{INCOME 15 30 50}
|
||||
team_name=mages
|
||||
[/side]
|
||||
|
|
|
@ -3,7 +3,8 @@ name=Elvish Shyde
|
|||
race=elf
|
||||
gender=female
|
||||
image=elvish-shyde.png
|
||||
image_healing=elvish-shyde-healing.png
|
||||
image_healing=null
|
||||
image_halo_healing=elvish-shyde-healing1.png:100,elvish-shyde-healing2.png:100,elvish-shyde-healing3.png:100,elvish-shyde-healing4.png:100,elvish-shyde-healing5.png:100,elvish-shyde-healing6.png:100,elvish-shyde-healing7.png:100,elvish-shyde-healing8.png:100,elvish-shyde-healing9.png:100,elvish-shyde-healing10.png:100,elvish-shyde-healing11.png:100,elvish-shyde-healing12.png:100
|
||||
hitpoints=46
|
||||
movement_type=woodlandfloat
|
||||
movement=6
|
||||
|
|
Before Width: | Height: | Size: 1.2 KiB |
BIN
images/elvish-shyde-healing1.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
images/elvish-shyde-healing10.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
images/elvish-shyde-healing11.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
images/elvish-shyde-healing12.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
images/elvish-shyde-healing2.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
images/elvish-shyde-healing3.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
images/elvish-shyde-healing4.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
images/elvish-shyde-healing5.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
images/elvish-shyde-healing6.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
images/elvish-shyde-healing7.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
images/elvish-shyde-healing8.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
images/elvish-shyde-healing9.png
Normal file
After Width: | Height: | Size: 14 KiB |
|
@ -369,7 +369,6 @@ SDL_Rect draw_text_line(SDL_Surface *gui_surface, const SDL_Rect& area, int size
|
|||
}
|
||||
|
||||
if(dest.x + dest.w > area.x + area.w) {
|
||||
std::cerr << "Error: text with ellipsis does not fit !\n";
|
||||
dest.w = area.x + area.w - dest.x;
|
||||
}
|
||||
|
||||
|
|
|
@ -80,7 +80,9 @@ LEVEL_RESULT play_game(display& disp, game_state& state, config& game_config,
|
|||
starting_pos = state.starting_pos;
|
||||
scenario = &starting_pos;
|
||||
} else {
|
||||
std::cerr << "loading scenario: '" << state.scenario << "'\n";
|
||||
scenario = game_config.find_child(type,"id",state.scenario);
|
||||
std::cerr << "scenario found: " << (scenario != NULL ? "yes" : "no") << "\n";
|
||||
}
|
||||
|
||||
if(!recorder.at_end()) {
|
||||
|
@ -753,6 +755,9 @@ int play_game(int argc, char** argv)
|
|||
string_table["bad_save_message"] + ": " + e.message + "\n",
|
||||
gui::OK_ONLY);
|
||||
continue;
|
||||
} catch(io_exception& e) {
|
||||
gui::show_dialog(disp,NULL,"","File I/O Error while reading the game",gui::OK_ONLY);
|
||||
continue;
|
||||
}
|
||||
|
||||
recorder = replay(state.replay_data);
|
||||
|
|
|
@ -194,6 +194,8 @@ bool gamestatus::next_turn()
|
|||
|
||||
game_state read_game(const game_data& data, const config* cfg)
|
||||
{
|
||||
std::cerr << "reading scenario: '" << cfg->write() << "'\n";
|
||||
|
||||
log_scope("read_game");
|
||||
game_state res;
|
||||
res.label = (*cfg)["label"];
|
||||
|
@ -201,6 +203,8 @@ game_state read_game(const game_data& data, const config* cfg)
|
|||
res.gold = atoi((*cfg)["gold"].c_str());
|
||||
res.scenario = (*cfg)["scenario"];
|
||||
|
||||
std::cerr << "scenario: '" << res.scenario << "'\n";
|
||||
|
||||
res.difficulty = (*cfg)["difficulty"];
|
||||
if(res.difficulty.empty())
|
||||
res.difficulty = "NORMAL";
|
||||
|
@ -365,6 +369,11 @@ void load_game(const game_data& data, const std::string& name, game_state& state
|
|||
}
|
||||
|
||||
config cfg(file_data);
|
||||
|
||||
if(cfg.empty()) {
|
||||
throw gamestatus::load_game_failed();
|
||||
}
|
||||
|
||||
state = read_game(data,&cfg);
|
||||
}
|
||||
|
||||
|
|
|
@ -1047,6 +1047,19 @@ std::string default_generate_map(size_t width, size_t height, size_t island_size
|
|||
terrain[x-1][y+1] = 'C';
|
||||
terrain[x+1][y-1] = 'C';
|
||||
terrain[x+1][y+1] = 'C';
|
||||
|
||||
//remove all labels under the castle tiles
|
||||
if(labels != NULL) {
|
||||
labels->erase(location(x-width/3,y-height/3);
|
||||
labels->erase(location(x-1-width/3,y-height/3);
|
||||
labels->erase(location(x+1-width/3,y-height/3);
|
||||
labels->erase(location(x-width/3,y-1-height/3);
|
||||
labels->erase(location(x-width/3,y+1-height/3);
|
||||
labels->erase(location(x-1-width/3,y-1-height/3);
|
||||
labels->erase(location(x-1-width/3,y+1-height/3);
|
||||
labels->erase(location(x+1-width/3,y-1-height/3);
|
||||
labels->erase(location(x+1-width/3,y+1-height/3);
|
||||
}
|
||||
}
|
||||
|
||||
std::cerr << "placed castles\n";
|
||||
|
|
|
@ -515,8 +515,8 @@ int show_dialog(display& disp, SDL_Surface* image,
|
|||
|
||||
|
||||
const int border_padding = 10;
|
||||
int frame_width = maximum<int>(total_width + border_padding*2,above_left_preview_pane_width + above_right_preview_pane_width);
|
||||
int frame_height = maximum<int>(int(preview_pane_height),total_height + border_padding*2);
|
||||
int frame_width = maximum<int>(total_width,above_left_preview_pane_width + above_right_preview_pane_width);
|
||||
int frame_height = maximum<int>(total_height,int(preview_pane_height));
|
||||
int xframe = maximum<int>(0,xloc >= 0 ? xloc : scr->w/2 - (frame_width + left_preview_pane_width + right_preview_pane_width)/2);
|
||||
int yframe = maximum<int>(0,yloc >= 0 ? yloc : scr->h/2 - (frame_height + above_preview_pane_height)/2);
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "statistics.hpp"
|
||||
#include "util.hpp"
|
||||
|
||||
namespace {
|
||||
|
||||
|
@ -269,8 +270,7 @@ void attack_context::attack_result(attack_context::ATTACK_RESULT res)
|
|||
if(stats_disabled > 0)
|
||||
return;
|
||||
|
||||
attacker_res.resize(attacker_res.size()+1);
|
||||
attacker_res[attacker_res.size()-1] = (res == MISSES ? '0' : '1');
|
||||
push_back(attacker_res,(res == MISSES ? '0' : '1'));
|
||||
|
||||
attacker_stats().damage_inflicted += bat_stats.damage_defender_takes;
|
||||
defender_stats().damage_taken += bat_stats.damage_defender_takes;
|
||||
|
|