在这个挑战中,您将创建一个战利品,目标是在战斗中击败所有其他奖学金。
奖学金(团队)由3个字符组成。每个角色的行动都与团队其他成员无关,但是在与敌人作战时,他们需要共同努力。团队将以旋转的方式面对面面对面。胜利值得3分,平局值得1分,损失值得0分。
角色具有能力。选择角色具有的能力是本KotH中最关键(也是最有趣)的部分之一。它们都很强大,并且有可能消灭敌人。
角色拥有生命值(HP),并且当他们的HP达到(或低于)0时,他们将死亡。如果对手团队中的所有角色死亡,那么您就赢了!
角色有法力值。大多数动作都需要Mana来执行,如果您没有足够的力量,则该动作对您不可用。
角色有转弯延迟。这确定了每回合之间的刻度数(从100开始)。越低越好。
字符具有属性。每个字符在每个属性中均以5为底,并且还为您分配了20个额外的属性点。分配属性点后,您的主要属性将被设置为最高属性。
可用的属性有:
- 力量:每回合能提供10最大生命值和0.5生命值
- 智力:每回合提供7点最大魔力和0.1点魔力
- 敏捷度:减少转弯延迟1
运动,视觉,范围
范围如下(以0为中心)。一些范围是基数,这意味着它们只能直接向上,向左,向右或向下移动。
444
43334
4322234
432111234
432101234
432111234
4322234
43334
444
角色的初始视野为2。相同研究对象的玩家之间的视野是共享的。
怎么玩
建设者
将建立他们的团契。 您需要执行以下步骤:
给每个角色属性点。每个角色的每个属性开头都是5,另外还有20个角色在3个角色之间分配。
赋予每个角色能力。每个角色以4个异能槽开始,默认情况下,异能占据1个槽。一些能力是可重复的,并且可以多次赋予一个角色。未经所有者许可,不允许使用其他提交的功能集。
为您的机器人编写一些代码。该代码必须使用Java,并将用于战斗(下一步)
动作
所有字符均以3个标准动作开头:
- 步骤:在1个基本范围内移动角色
- 切片:在1个基本范围内攻击PrimaryAttribute的敌人
- 微笑:无所事事
在角色回合上,然后必须选择要执行的动作。动作可能会消耗法力值,并且可能会有冷却时间,该时间定义了再次执行该动作之前必须等待的回合数。
能力
每个角色都有4个能力槽。如果一个能力用斜体表示,那就是一个动作。
能力
名称说明法力冷却
移动
闪烁 移至一个正方形,范围4 2 2
交换 与目标5交换位置5
传送 随处移动20 5
短划线将步距范围增加1。
Mobile Step可以沿8个方向中的任何一个移动
进攻
快速 切片两次3 0
编织 一次切片所有可见的敌人15 10
吸收每个切片会窃取目标的1个主要属性。持续20转
劈开每片对相邻敌人造成1/2伤害
暴击增加切片30%的几率造成200%的伤害。可重复的
盛宴每片可以使你的HP提高3。
柔性罐头可在8个方向上任意切割
法力偷取切片可以偷取2点法力值。可重复的
切片时反射片0 3
范围加1
滑动同一目标上的每个连续切片比上一个造成的伤害多3
状态
消除 从目标中删除所有状态。范围 2。20 10
决斗冻结你和目标,直到其中一位死亡。范围1 25 0
击倒 你和目标,使其在接下来的1000刻内被击晕10 10
流星 所有敌人在接下来的100 刻被击昏25 10
皮带 目标在接下来的2个回合中被冻结4 6
毒药将敌人的HP 毒化 5个回合5 0
沉默 目标沉默5圈5 7
慢速 目标接下来的3圈减速40个滴答声10 5
眩晕 接下来的300个滴答声使目标昏迷 10 10
寒冷2个范围内的所有其他角色都会减速10个滴答声
免疫状态无法应用到您
防守型
强制野战 格挡下5个伤害来源。没有堆15 5
幽灵 一转,所有伤害愈合10
治愈 治愈目标为20 HP 10 3
恢复 所有单位都恢复到完全健康20 40
盾牌 你不能切,直到你的下一回合3 0
造成25%机率的几率使你不被击中。可重复的
只能将支柱切成一圈
复活被杀死后,恢复生命值并拥有完整的生命值(无状态)0 40
尖刺造成伤害时,将一半伤害退还
视力
披风 队隐身5回合20 20
躲藏 你隐身5回合4 7
阶段 隐身1回合0 3
追踪 目标无法隐身,并受到10%以上的伤害。持续10回合。5 5
黑暗敌人的视线范围减少1。叠加,但不能低于1。
远视力视线范围增加2。
隐形如果你开始转向敌人的视线,那么你就是隐形的
真实视域在回合开始时显示2点范围内的所有隐藏单位
损伤
排水 对目标造成5点伤害,并在他们停留在1个范围内时自我恢复5 HP 10 5
闪电 对所有敌人造成15点伤害20 10
K / O 如果目标低于20%HP则杀死目标20 0
陷阱 放置一个隐形陷阱。踩踏陷阱会造成15点伤害。堆栈。10 2
Zap 造成30点伤害至目标30 5
静态每1范围内对所有敌人造成5点伤害。可重复的
统计资料
狼人 5时为所有属性加10 30 25
Buff将您的HP池加倍。可重复的
智慧动作的冷却时间缩短20%。可重复的
专注使你的魔力回复速率提高Int / 10。可重复的
再生提高力量2点的能量回复率。可重复的
智能动作的法力消耗降低2点。可重复的
强你获得10点属性点。可重复的
弱点失去15个属性点。你获得2个能力插槽(需要其中之一)
其他
熊 可以召唤它们分别统计8 10有5个熊
克隆 克隆自己。需要两个能力插槽。100 100
偷取 使用所使用的最后一个敌人目标代替该行动。持续10转5 0
墙 在目标空正方形上创建不可逾越的墙,范围6 10 10
状态:
- 眩晕允许您的角色仅执行微笑动作,并持续X个刻度。
- 冻结可防止角色移动,并持续X圈。
- 沉默可防止角色执行笑,步或切以外的任何动作,并持续X圈。
- 毒药会在X圈伤害Y时伤害你的角色。如果您使用另一种毒药,则伤害加在一起,并且持续时间会刷新。
- 慢会将X加到您的回合之间的跳动次数中。它不会影响您即将到来的转弯,只会影响之后的转弯。
- 不可见使得它不会被对手看到或损坏。如果您执行除“步骤”或“微笑”以外的任何动作,则该动作将被删除。如果您的对手具有使他们对您有见识的能力,那么隐身性将被消除。
所有状态(“毒药”除外)彼此独立。
注意事项:
- 如果主属性存在平局,则将其解析为STR> AGI> INT。
- 您在10x10的网格上玩。团队将放置在相对的两侧。
- 百分比乘积叠加,但“聪明”除外。
提交规则
您需要实现2个功能:
// Create *exactly* 3 Character templates. You must return the same templates every time
public List<CharacterTemplate> createCharacters();
// Choose an action for a character. If the action requires a target or location, it must be set.
public ReadonlyAction choose(Set<ReadonlyAction> actions, ReadonlyCharacter character);
您还可以访问三个变量(成员变量):
Set<ReadonlyCharacter> team;
Set<EnemyCharacter> enemies;
Map<Point2D, EnemyCharacter> visibleEnemies;
而已。您可以在下面找到按字母顺序排列的完整API:
class Ability and ReadonlyAbility
int getNumSlots() returns the number of slots it takes up
boolean repeatable() returns true if the ability can be repeated
String name()
class Action and ReadonlyAction
Set<Point2D> availableLocations()
Set<ReadonlyCharacter> availableTargets()
boolean basicAction() returns true if the action is Smile, Step, or Slice
boolean breaksInvisibiliby()
int getCooldown() returns the cooldown cost (not the cooldown remaining)
int getManaCost()
String getName()
int getRemainingCooldown()
boolean isAvailable() returns true if the action can be performed
boolean movementAction() returns true if the action is prevented when Frozen
boolean needsLocation()
boolean needsTarget()
void setTarget(ReadonlyCharacter target)
void setLocation(Point2D location)
class CharacterTemplate
void addAbility(Ability)
boolean canAddAbility(Ability)
List<Ability> currentAbilities()
Map<Stat, Integer> currentAttributes()
int getRemainingPoints() returns the total number of ability points you have left to assign
int getRemainingSlots() returns the total number of slots you have to assign
int getStat(Stat stat)
boolean isValid() returns true if your character template is complete and valid
class Point2D
getX()
getY()
class Range
boolean isCardinal() returns true if the range only extends in the 4 cardinal directions
int getRange() returns the distance of the range
class ReadonlyCharacter and EnemyCharacter
Class characterClass()
int cleverness()
List<ReadonlyAbility> getAbilities()
Point2D getLocation() Not on EnemyCharacter
double getHealth()
double getMana()
int getMaxHealth()
int getMaxMana()
Range getSightRange()
Range getSliceRange()
int getStat(Stat stat)
Range getStepRange()
ReadonlyAction getLastAction()
boolean isFrozen()
boolean isStunned()
boolean isPoisoned()
int getPoisonAmount()
boolean isSilenced()
boolean isInvisible()
boolean isDead()
Stat primaryStat()
int smartness()
enum Stat
INT, STR, AGI
以上是提交时可能需要的所有功能。不允许反思。 如果由于某种原因提交的内容无效,请将其删除或在标题中添加“无效”。 您提交应该不会有一个包声明。您的提交应包含在第一个多行代码块中,并且第一行必须具有文件名。
如何运行项目:
有几种方法:
- 下载JAR文件,然后运行
java -jar Fellowship.jar。如果要下载其他提交,请通过-q 99744。java必须指向JDK,而不是JRE。 - 克隆git repo并运行
gradle run。您需要安装gradle,如果要传递参数,请使用-PappArgs="['arg1', 'args2']" - 克隆git repo,然后自己编译。您将需要以下库:
org.eclipse.collections:eclipse-collections-api:8.0.0,org.eclipse.collections:eclipse-collections:8.0.0,com.beust:jcommander:1.48,com.google.code.gson:gson:2.7,org.jsoup:jsoup:1.9.2
如果要克隆,则必须使用该--recursive标志,并且在提取更新时,请包括--recurse-submodules对于以上任何一项,您的类需要放入submissions/java文件夹中。如果您正在使用gradle或自己进行编译,则可以将类放入项目本身。您将需要取消注释主函数中的某些行,并对其进行更新以指向您的类。
计分板:
+------+-------------------+-------+
| Rank | Name | Score |
+------+-------------------+-------+
| 1 | TheWalkingDead | 738.0 |
| 2 | RogueSquad | 686.0 |
| 3 | Spiky | 641.0 |
| 4 | Invulnerables | 609.0 |
| 5 | Noob | 581.0 |
| 6 | Railbender | 561.0 |
| 7 | Vampire | 524.0 |
| 8 | LongSword | 508.0 |
| 9 | SniperSquad | 456.0 |
| 10 | BearCavalry | 430.0 |
| 11 | StaticCloud | 429.0 |
| 12 | PlayerWerewolf | 388.0 |
| 13 | LongSwordv2 | 347.0 |
| 14 | Derailer | 304.0 |
| 15 | Sorcerer | 266.0 |
| 16 | CowardlySniperMk2 | 262.0 |
| 17 | TemplatePlayer | 59.0 |
+------+-------------------+-------+
如果您有任何疑问或需要帮助,请在下面评论或加入聊天室! 祝好运并玩得开心点
Deal 15 damage to all enemies,但看不见的敌人不受闪电影响。这是错误吗?否则,隐身对我来说似乎很强大……