Overpowered

by gapty

main.py

Previous ChapterNext Chapter

Author's Note

Please be aware that this chapter may have weird formatting on mobile view.


main.py

``` from DroneControl import Drone from Messenger import sendnotification from GeodeScanner import GeodeScanner from FSPosition import getFSposition

ELEMENTS = ['Kindness', 'Honesty', 'Laughter', 'Generosity', 'Loyalty', 'Empathy', 'Magic']

Initialize power level states for each element

powerstates = {} for element in ELEMENTS: if element == 'Kindness' powerstates[element] = 'approachable' else: power_states[element] = 'fighting'

Initialize power levels for each element

powerlevels = {} for element in ELEMENTS: powerlevels[element] = GeodeScanner.measure_power(element)

previousFSposition = getFSposition() sendnotification('all', "Fluttershy's current position is " + previousFS_position)

while (GeodeScanner.measurepower("Kindness") < 0): # Update Fluttershy’s position currentFSposition = getFSposition() if previousFSposition != currentFSposition: sendnotification('all', "Fluttershy has moved to " + currentFSposition) previousFSposition = currentFSposition

# Control drones
for drone_id in Drone.id:
    # Drones get destroyed if in Fluttershy's region.
    if Drone.id[drone_id].position == current_FS_position:
        Drone.id[drone_id].change_position()
    else:
        # Detect and respond to animals
        animal = Drone.id[drone_id].detect_animal()
        # Contact authorities if animal is large
        if animal.category == "mammal" or animal.category == "reptile":
            send_notification('authority', animal.name + " has been spotted at " + Drone.id[drone_id].position)
        # Use smoke to calm down arthropods
        if animal.category == "arthropod":
            Drone.id[drone_id].smoke(animal)
        # Lead birds to a region with insects
        if animal.category == "bird":
            Drone.id[drone_id].lead_to_insects(animal)

""" if animal.name == “Ladybug”: Drone.id[droneid].killwith_fire(animal)

        Removed after discussions, but may be needed in the future. I don't understand why everyone wants to kill spiders though instead of the ladybugs. They're cute. -Twilight

"""

# Check geode’s power levels
for element in ELEMENTS:
    power_levels[element] = GeodeScanner.measure_power(element)
    # Update Rainboom’s power level state
    if element != 'Kindness':
        if power_levels[element] < 370:
            if power_states[element] != 'resting':
                power_states[element] = 'resting'
                send_notification(element, "Warning: low power level detected. Seek safety from Fluttershy and charge your geode!")
        elif power_levels[element] > 400:
            if power_states[element] != 'fighting':
                power_states[element] = 'fighting'
                send_notification(element, "Power level has been restored. It is safe to fight.")

    # Update Fluttershy's power level state
    else:
        if power_levels[element] < -200:
            if power_states[element] != 'enraged':
                power_states[element] = 'enraged'
                send_notification('Rainbooms', "Warning: Fluttershy is enraged. Do not harm animals!")
        elif power_levels[element] <= -30:
            if power_states[element] != 'approachable':
                power_states[element] = 'approachable'
                send_notification('Rainbooms', "Fluttershy can be approached again!")
        elif power_levels[element] > -30:
            if power_states[element] != 'low':
                power_states[element] = 'low'
                send_notification('Rainbooms', "Fluttershy is close to being purified. Attack together!")

```

Next Chapter