Skip to content

Commit 95a72c9

Browse files
Merge pull request #33 from openbase/feature/25-agents-should-be-able-to-turn-towards-a-resource
Implement #25 agents should be able to turn towards a resource
2 parents 0d006c6 + 3e86ea2 commit 95a72c9

File tree

3 files changed

+71
-6
lines changed

3 files changed

+71
-6
lines changed

src/main/kotlin/org/openbase/planetsudo/level/levelobjects/Agent.kt

+20
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,26 @@ class Agent(
317317
}
318318
}
319319

320+
override fun turnToResource() {
321+
ap.actionPoint
322+
if (useFuel()) {
323+
val resourceToGo = level.getCloseResource(this)
324+
if (resourceToGo != null) {
325+
direction.turnTo(position, resourceToGo.position)
326+
}
327+
}
328+
}
329+
330+
override fun turnToResource(resourceType: ResourceType) {
331+
ap.actionPoint
332+
if (useFuel()) {
333+
val resourceToGo = level.getCloseResource(this, resourceType)
334+
if (resourceToGo != null) {
335+
direction.turnTo(position, resourceToGo.position)
336+
}
337+
}
338+
}
339+
320340
override fun turnRandom() {
321341
turnRandom(360)
322342
}

src/main/kotlin/org/openbase/planetsudo/level/levelobjects/AgentInterface.kt

+43-6
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ interface AgentInterface {
178178
fun go()
179179

180180
/**
181-
* Der Agent dreht sich um `beta`° nach links und bewegt sich anschließend geradeaus.
181+
* Der Agent bewegt sich geradeaus und dreht sich anschließend um `beta`° nach links.
182182
* Aktionspunkte: 3 (+ 3 wenn resource geladen)
183183
* Treibstoff: 1
184184
*
@@ -188,7 +188,7 @@ interface AgentInterface {
188188
fun goLeft(beta: Int)
189189

190190
/**
191-
* Der Agent dreht sich um `beta`° nach rechts und bewegt sich anschließend geradeaus.
191+
* Der Agent bewegt sich geradeaus und dreht sich anschließend um `beta`° nach rechts.
192192
* Aktionspunkte: 3 (+ 3 wenn resource geladen)
193193
* Treibstoff: 1
194194
*
@@ -198,33 +198,45 @@ interface AgentInterface {
198198

199199
/**
200200
* Der Agent bewegt sich in Richtung des Markers, falls dieser gesetzt
201-
* wurde. Hierbei wird ein Weg berechnet, welcher auf krzester Distanz
202-
* zum Marker fhrt. Um Hindernisse bewegt sich der Agent hierbei
201+
* wurde. Hierbei wird ein Weg berechnet, welcher auf kürzester Distanz
202+
* zum Marker fährt. Um Hindernisse bewegt sich der Agent hierbei
203203
* automatisch herum.
204+
*
205+
* Achtung: Der Agent bewegt sich erst geradeaus und dreht sich danach.
206+
*
204207
* Aktionspunkte: 4 (+ 4 wenn resource geladen)
205208
* Treibstoff: 1
206209
*/
207210
fun goToMarker()
208211

209212
/**
210213
* Der Agent bewegt sich auf das Mutterschiff zu. Hierbei wird ein Weg
211-
* berechnet, welcher auf krzester Distanz zum Mutterschiff
212-
* fhrt. Um Hindernisse bewegt sich der Agent hierbei automatisch
214+
* berechnet, welcher auf kürzester Distanz zum Mutterschiff
215+
* fährt. Um Hindernisse bewegt sich der Agent hierbei automatisch
213216
* herum.
217+
*
218+
* Achtung: Der Agent bewegt sich erst geradeaus und dreht sich danach.
219+
*
214220
* Aktionspunkte: 4 (+ 4 wenn resource geladen)
215221
* Treibstoff: 1
216222
*/
217223
fun goToMothership()
218224

219225
/**
220226
* Der Agent bewegt sich zur Resource.
227+
*
228+
* Achtung: Der Agent bewegt sich erst geradeaus und dreht sich danach.
229+
*
221230
* Aktionspunkte: 4 (+ 4 wenn resource geladen)
222231
* Treibstoff: 1
223232
*/
224233
fun goToResource()
225234

226235
/**
227236
* Der Agent bewegt sich zur Resource vom angegebenen Typen.
237+
*
238+
* Achtung: Der Agent bewegt sich erst geradeaus und dreht sich danach.
239+
*
228240
* Aktionspunkte: 4 + (+ 4 wenn resource geladen)
229241
* Treibstoff: 1
230242
* @param resourceType
@@ -233,13 +245,19 @@ interface AgentInterface {
233245

234246
/**
235247
* Gehe zu einem Agenten der Hilfe benötigt.
248+
*
249+
* Achtung: Der Agent bewegt sich erst geradeaus und dreht sich danach.
250+
*
236251
* Aktionspunkte: 4 + (+ 4 wenn resource geladen)
237252
* Treibstoff: 1
238253
*/
239254
fun goToSupportAgent()
240255

241256
/**
242257
* Gehe zu einem feindlichen Agenten in der Nähe.
258+
*
259+
* Achtung: Der Agent bewegt sich erst geradeaus und dreht sich danach.
260+
*
243261
* Aktionspunkte: 4 + (+ 4 wenn resource geladen)
244262
* Treibstoff: 1
245263
*/
@@ -544,6 +562,25 @@ interface AgentInterface {
544562
*/
545563
fun turnRight(beta: Int)
546564

565+
/**
566+
* Der Agent dreht sich zu einer nahen Resource.
567+
* Falls er keine findet, dreht er sich nicht
568+
*
569+
* Aktionspunkte: 1
570+
* Treibstoff: 1
571+
*/
572+
fun turnToResource()
573+
574+
/**
575+
* Der Agent dreht sich zu einer nahen Resource eines bestimmten Typs.
576+
* Falls er keine findet, dreht er sich nicht
577+
*
578+
* Aktionspunkte: 1
579+
* Treibstoff: 1
580+
* @param resourceType Der Typ der Resource
581+
*/
582+
fun turnToResource(resourceType: ResourceType)
583+
547584
/**
548585
* Der Agent läuft amok.
549586
*/

src/main/kotlin/org/openbase/planetsudo/level/levelobjects/AgentMock.kt

+8
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,14 @@ class AgentMock : AgentInterface {
205205
error("Mock does not offer any functionality.")
206206
}
207207

208+
override fun turnToResource() {
209+
error("Mock does not offer any functionality.")
210+
}
211+
212+
override fun turnToResource(resourceType: Resource.ResourceType) {
213+
error("Mock does not offer any functionality.")
214+
}
215+
208216
override fun kill() {
209217
error("Mock does not offer any functionality.")
210218
}

0 commit comments

Comments
 (0)