server/src/academy.c

29 lines
903 B
C
Raw Normal View History

2018-09-10 17:58:10 +02:00
#include "platform.h"
#include "kernel/config.h"
2016-03-08 17:29:15 +01:00
#include <kernel/unit.h>
2016-03-11 21:36:10 +01:00
#include <kernel/building.h>
#include <kernel/item.h>
#include <kernel/pool.h>
2016-03-08 17:29:15 +01:00
#include "academy.h"
#include "study.h"
void academy_teaching_bonus(struct unit *u, skill_t sk, int students) {
2019-01-24 17:50:58 +01:00
if (students > 0 && sk != NOSKILL) {
/* actually students * EXPERIENCEDAYS / MAX_STUDENTS */
learn_skill(u, sk, students);
2016-03-08 17:29:15 +01:00
}
}
2016-03-11 21:36:10 +01:00
2018-07-09 03:31:13 +02:00
bool academy_can_teach(unit *teacher, unit *scholar, skill_t sk) {
2016-03-11 21:36:10 +01:00
const struct building_type *btype = bt_find("academy");
2018-07-09 03:31:13 +02:00
if (active_building(teacher, btype) && active_building(scholar, btype)) {
int j = study_cost(scholar, sk) * 2;
2017-12-29 13:37:17 +01:00
if (j < 50) j = 50;
2016-03-11 21:36:10 +01:00
/* kann Einheit das zahlen? */
2018-07-09 03:31:13 +02:00
return get_pooled(scholar, get_resourcetype(R_SILVER), GET_DEFAULT, j) >= j;
2016-03-11 21:36:10 +01:00
/* sonst nehmen sie nicht am Unterricht teil */
}
return false;
}