/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2016, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2021, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure, Markus Armbruster
*
* Empire is free software: you can redistribute it and/or modify
struct combat *);
int
-assa(void)
+c_assault(void)
{
struct combat off[1]; /* assaulting ship */
struct combat def[1]; /* defending sector */
return RET_OK;
}
+ /* If only spies assault, try to sneak them ashore */
+ if (only_spies(off, &olist)) {
+ sneak_ashore(off, &olist, def);
+ return RET_OK;
+ }
+
ototal = att_get_offense(A_ASSAULT, off, &olist, def);
if (att_abort(A_ASSAULT, off, def)) {
pr("Assault aborted\n");
* happening in the game.
*/
- /* First, we check to see if the only thing we have are spies
- * assaulting. If so, we try to sneak them on land. If they
- * make it, the defenders don't see a thing. If they fail, well,
- * the spies die, and the defenders see them. */
-
- /* If no attacking forces (i.e. we got here with only spies)
- * then try to sneak on-land. */
- if (only_spies(off, &olist)) {
- sneak_ashore(off, &olist, def);
- return RET_OK;
- }
-
/* Get the real defense */
att_get_defense(&olist, def, &dlist, a_spy, ototal);
struct emp_qelem *qp;
struct ulist *llp;
struct lndstr *lp;
- int rel;
+ enum relations rel;
pr("Trying to sneak on shore...\n");
llp = (struct ulist *)qp;
lp = &llp->unit.land;
rel = relations_with(def->own, player->cnum);
- if (chance(0.10) || rel == ALLIED || !def->own) {
+ if (rel == ALLIED || !def->own
+ || !chance(LND_SPY_DETECT_CHANCE(lp->lnd_effic / 2))) {
+ /* eff/2 because this is hard */
pr("%s made it on shore safely.\n", prland(lp));
} else {
pr("%s was spotted", prland(lp));
wu(0, def->own, "%s spy spotted in %s.\n",
cname(player->cnum), xyas(def->x, def->y,
def->own));
- pr(" but made it ok.\n");
+ pr(" but made it OK.\n");
}
}
}