# Store hero's position -- Coordinated defense

This is more of a general Python question.

Typing in coordinates is repetitive and annoying, so I’ve been trying to write defs and stuff to avoid having to do it more than I need to, and I noticed something on this level (I’ve not tried this before until now).

If I try to store my hero’s position as a variable using hero.pos; the value in the variable will automatically change as the hero moves without me updating it. I was trying to just grab the hero’s starting position so I could return to it:

``````start = hero.pos # Trying to store the hero's starting position so he can just walk back to it.
while True:
# Get an array of enemies.
enemies = hero.findEnemies()
# If the array is not empty.
if len(enemies) > 0:
# Attack the first enemy from "enemies" array.
hero.cast("drain-life", enemies[0])
hero.moveXY(start.x, start.y)
hero.say(start) # Hero says their current position, rather than the original position
pass
``````

So… is there a way I can deference the current hero.pos to store that value as a variable?

``````x = hero.pos.x
y = hero.pos.y
start = {'x': hero.pos.x, 'y': hero.pos.y}

while True:
if  hero.pos.x < x + 50:
#  you can attack enemies
hero.move({'x': start.x + 51, 'y' : start.y})
# hero.move({'x': x + 51, 'y' : y}) # same
else:
hero.moveXY(x, y)
# hero.moveXY(start.x,start.y) # same
# you can not attack when moving with moveXY
# in CoCo deep copy is generally forbidden
``````

Edit: CoCo is using lodash (javascrirt) and some (not all) of its methods are working both in javascript and the CoCo python. So this code is possible:

``````start = _.cloneDeep(hero.pos)
# or with Vector.copy()
# start = hero.pos.copy()
while True:
if  hero.pos.x < start.x + 50:
hero.move({'x': start.x + 51, 'y' : start.y})
else:
hero.moveXY(start.x, start.y)
``````

``````start = _.cloneDeep(hero.pos)