def combinedSpawner(pos, color, factionId): for _ in range(10): freePos = scramblePosition(pos, 0.4, 0.2) if not CollisionLogic.pointCollides(freePos): createUnit(freePos, color, factionId) break return ScheduledTaskResult.ContinueTask
def tryMove(entityId): coordinate = coreInstance.entities[entityId].pos friction = coreInstance.entities[entityId].friction deltaVector = coreInstance.entities[entityId].deltaVector savePos = coreInstance.entities[entityId].pos coreInstance.entities[entityId].pos = [x + y for x, y in zip(coordinate, deltaVector)] coreInstance.entities[entityId].deltaVector = [x * friction for x in deltaVector] saveDeltaVector = coreInstance.entities[entityId].deltaVector collidingVector = CollisionLogic.entityIsColliding_currently(entityId) if collidingVector: coreInstance.entities[entityId].deltaVector = [x * 0.5 for x in deltaVector] coreInstance.entities[entityId].pos = savePos coreInstance.entities[entityId].deltaVector = saveDeltaVector return collidingVector coreInstance.entities[entityId].deltaVector = saveDeltaVector return None