Difference between revisions of "Barriers"
(18 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
Magical barriers block enemy's [[spells]] and [[items]] to your country. Requiring certain formula and technique, only an Archmage can build a barrier. There's no way to order anything when you are concentrating to build them. Higher rate of barriers will increase the chance of protecting yourself from various kind of magical attacks. | Magical barriers block enemy's [[spells]] and [[items]] to your country. Requiring certain formula and technique, only an Archmage can build a barrier. There's no way to order anything when you are concentrating to build them. Higher rate of barriers will increase the chance of protecting yourself from various kind of magical attacks. | ||
− | Building barriers | + | ==Effects== |
− | * If you build 50 barriers at once you will pay upkeep for 50 barriers for 50 [[turns]] at a cost of | + | *The percentage of barriers on your land determines overall spell resistance |
− | * Building them one turn at a time saves you | + | ** Building ~2.5% barriers gives the maximum 75% barrier resistance |
+ | ** The skill [[Barrier Proficiency]] can raise maximum resistance to 83%. | ||
+ | * Barriers require 30 m.p./turn upkeep on non-oversummoning servers, and 60 m.p./turn on oversummoning servers | ||
+ | *Barriers provide no space for population, vs 10 for wilderness. | ||
+ | |||
+ | ==Building barriers== | ||
+ | * The number of [[Workshops]] does not increase the building rate for barriers (these are magical buildings, only the mage can make them) | ||
+ | ** Neither does the [[Engineer]] (these are magical buildings, only the mage can make them) | ||
+ | * If you build 50 barriers at once you will | ||
+ | ** first pay the building cost 50 barriers times 50 m.p. = 2500 m.p. | ||
+ | ** but also pay the upkeep for 50 barriers times 30 m.p. for 50 [[turns]] at a cost of 75,000 [[mana]] in upkeep alone. | ||
+ | * Building them one turn at a time saves you ~37,500 [[mana]] on upkeep mana. | ||
** of course the faster you move, the less you risk being attacked while building barriers... | ** of course the faster you move, the less you risk being attacked while building barriers... | ||
− | Program Code of Barriers: | + | ==Program Code of Barriers== |
− | http://www.the-reincarnation.com/viewtopic.php?f=7&t=17213 | + | Source: [http://www.the-reincarnation.com/viewtopic.php?f=7&t=17213] |
+ | |||
+ | sub spell_resisted { | ||
+ | :: my $caster_mage = shift; | ||
+ | :: my $target_mage = shift; | ||
+ | :: my $spell_color = shift; | ||
+ | :: my $barrier_resistance = $target_mage->getBarrierResistance() / 100; | ||
+ | :: my $sl_resistance = 0; | ||
+ | :: my $barrier_piercing = $caster_mage->{mage_spellpiercing} / 100; | ||
+ | :: | ||
+ | :: my $color_resistance = 0; | ||
+ | :: $color_resistance = $target_mage->getResistanceNether() if $spell_color eq 'NETHER'; | ||
+ | :: $color_resistance = $target_mage->getResistancePhantasm() if $spell_color eq 'PHANTASM'; | ||
+ | :: $color_resistance = $target_mage->getResistanceAscendant() if $spell_color eq 'ASCENDANT'; | ||
+ | :: $color_resistance = $target_mage->getResistanceVerdant() if $spell_color eq 'VERDANT'; | ||
+ | :: $color_resistance = $target_mage->getResistanceEradication() if $spell_color eq 'ERADICATION'; | ||
+ | :: | ||
+ | :: $color_resistance = 75 if $color_resistance > 75; | ||
+ | :: | ||
+ | :: #Spell Penetration also reduces color resistance | ||
+ | :: $color_resistance -= $caster_mage->{mage_spellpiercing}; | ||
+ | :: $color_resistance = 0 if $color_resistance < 0; | ||
+ | :: | ||
+ | :: $color_resistance /= 100; | ||
+ | :: | ||
+ | :: #check barriers | ||
+ | :: if ( rand() < ($barrier_resistance + $sl_resistance - $barrier_piercing)) { | ||
+ | :: return 0; | ||
+ | :: } | ||
+ | :: | ||
+ | :: #check resistances | ||
+ | :: if (rand() < $color_resistance) { | ||
+ | :: return 1; | ||
+ | :: } | ||
+ | :: | ||
+ | :: #not blocked | ||
+ | :: return 2; | ||
+ | } | ||
+ | |||
[[Category:Buildings]] | [[Category:Buildings]] |
Latest revision as of 23:08, 24 October 2017
Magical barriers block enemy's spells and items to your country. Requiring certain formula and technique, only an Archmage can build a barrier. There's no way to order anything when you are concentrating to build them. Higher rate of barriers will increase the chance of protecting yourself from various kind of magical attacks.
Effects
- The percentage of barriers on your land determines overall spell resistance
- Building ~2.5% barriers gives the maximum 75% barrier resistance
- The skill Barrier Proficiency can raise maximum resistance to 83%.
- Barriers require 30 m.p./turn upkeep on non-oversummoning servers, and 60 m.p./turn on oversummoning servers
- Barriers provide no space for population, vs 10 for wilderness.
Building barriers
- The number of Workshops does not increase the building rate for barriers (these are magical buildings, only the mage can make them)
- Neither does the Engineer (these are magical buildings, only the mage can make them)
- If you build 50 barriers at once you will
- Building them one turn at a time saves you ~37,500 mana on upkeep mana.
- of course the faster you move, the less you risk being attacked while building barriers...
Program Code of Barriers
Source: [1]
sub spell_resisted {
- my $caster_mage = shift;
- my $target_mage = shift;
- my $spell_color = shift;
- my $barrier_resistance = $target_mage->getBarrierResistance() / 100;
- my $sl_resistance = 0;
- my $barrier_piercing = $caster_mage->{mage_spellpiercing} / 100;
- my $color_resistance = 0;
- $color_resistance = $target_mage->getResistanceNether() if $spell_color eq 'NETHER';
- $color_resistance = $target_mage->getResistancePhantasm() if $spell_color eq 'PHANTASM';
- $color_resistance = $target_mage->getResistanceAscendant() if $spell_color eq 'ASCENDANT';
- $color_resistance = $target_mage->getResistanceVerdant() if $spell_color eq 'VERDANT';
- $color_resistance = $target_mage->getResistanceEradication() if $spell_color eq 'ERADICATION';
- $color_resistance = 75 if $color_resistance > 75;
- #Spell Penetration also reduces color resistance
- $color_resistance -= $caster_mage->{mage_spellpiercing};
- $color_resistance = 0 if $color_resistance < 0;
- $color_resistance /= 100;
- #check barriers
- if ( rand() < ($barrier_resistance + $sl_resistance - $barrier_piercing)) {
- return 0;
- }
- #check resistances
- if (rand() < $color_resistance) {
- return 1;
- }
- #not blocked
- return 2;
}