예제 #1
0
    def get(self, request):
        context = self.data.dump()
        slots = Data.get_slots()
        print("slots" + str(slots))
        iter = ['a', 'b', 'c']
        load = False

        context.update({'slots': self.slots_str()})
        req = request.GET
        select = 0
        if req:
            select = int(req.get('s', 0))
            if req.get('load', True) == 'True' and select in range(3):
                slots = Data.get_slots()
                slot = slots[iter[select]]
                if slot[1] != 0:

                    slot = str(iter[select])
                    print("open slot : " + slot)
                    print("HERE ")
                    self.data.load(slot)
                    load = True
            elif req.get('move', True):
                if req['move'] == 'up':
                    if int(req['s']) > 0:
                        select = select - 1
                    else:
                        select = 2
                elif req['move'] == 'down':
                    if select < 2:
                        select = select + 1
                    else:
                        select = 0

        context.update({'select': select})

        if load == False:
            a = '?load=True&s=' + str(select)
        else:
            a = '/worldmap'

        controls = {
            'up': '?load=False&move=up&s=' + str(select),
            'right': '',
            'down': '?load=False&move=down&s=' + str(select),
            'left': '',
            'A': a,
            'B': '/',
            'start': '',
            'select': '',
        }

        context.update({'controls': controls})

        return render(request, 'options/load_game.html', context)
예제 #2
0
 def slots_str(self):
     slots = Data.get_slots()
     iter = ['a', 'b', 'c']
     slots_str = []
     for i in iter:
         if slots[i][1] != 0:
             slots_str.append(str(slots[i][0] + '/' + slots[i][1]))
         else:
             slots_str.append("Free")
     return (slots_str)
예제 #3
0
class SaveGame(View):
    data = Data()

    def slots_str(self):
        slots = Data.get_slots()
        iter = ['a', 'b', 'c']
        slots_str = []
        for i in iter:
            if slots[i][1] != 0:
                slots_str.append(str(slots[i][0] + '/' + slots[i][1]))
            else:
                slots_str.append("Free")
        return (slots_str)

    def get(self, request):
        context = self.data.dump()
        iter = ['a', 'b', 'c']
        context.update({'slots': self.slots_str()})
        req = request.GET
        select = 0
        if req:
            select = int(req.get('s', 0))
            if req.get('save', True) == 'True' and int(req.get('s',
                                                               0)) in range(3):
                self.data.hard_save(iter[int(req.get('s', 0))])
                context.update({'slots': self.slots_str()})
            elif req.get('move', True):
                if req['move'] == 'up':
                    if int(req['s']) > 0:
                        select = select - 1
                    else:
                        select = 2
                elif req['move'] == 'down':
                    if select < 2:
                        select = select + 1
                    else:
                        select = 0

        context.update({'select': select})

        controls = {
            'up': '?save=False&move=up&s=' + str(select),
            'right': '',
            'down': '?save=False&move=down&s=' + str(select),
            'left': '',
            'A': '?save=True&s=' + str(select),
            'B': '/options',
            'start': '',
            'select': '',
        }
        context.update({'controls': controls})

        return render(request, 'options/save_game.html', context)
예제 #4
0
class Battle(View):
    data = Data()

    def _throw_result(self, strengh, rating):
        prob = 50 - (rating * 10) + (strengh * 5)
        if prob < 1:
            prob = 1
        elif prob > 90:
            prob = 90
        return prob

    def get(self, request, id):
        req = request.GET

        controls = {
            'up': '',
            'right': '',
            'down': '',
            'left': '',
            'A': '?move=throw',
            'B': '/worldmap',
            'start': '',
            'select': '',
        }

        context = self.data.dump()
        context.update({'movie': self.data.get_movie(id)})

        proba = self._throw_result(len(context['capture_movies']),
                                   float(context['movie']['imdbRating']))
        context.update({'proba': proba})

        if req:
            if req['move'] and req['move'] == 'throw':
                if context['balls'] > 0:
                    self.data.decrease_balls()

                    if random.randrange(101) <= proba:
                        self.data.capture_movie(id)
                        controls.update({'A': ''})
                        context.update({'event': 'You Did It !! '})
                    else:
                        context.update({'event': 'Looser !! '})
                else:
                    context.update(
                        {'event': 'Stop throw pebbles to this poor Moviemon'})

        context.update({'controls': controls})
        return render(request, 'battle/index.html', context)
예제 #5
0
class MovieDex(View):
    data = Data()

    def get(self, request):
        context = self.data.dump()
        req = request.GET
        select = 1
        if req:
            if req.get('move', False):
                if req['move'] == 'up':
                    if int(req['s']) > 1:
                        select = int(req['s']) - 1
                    else:
                        select = len(context['capture_movies'])
                elif req['move'] == 'down':
                    if int(req['s']) < len(context['capture_movies']):
                        select = int(req['s']) + 1
                    else:
                        select = 1

        context.update({'select': select})
        context.update(
            {'columns': str(int(len(context['capture_movies'] / 3)))})

        a = ''
        if (len(context['capture_movies']) > 0):
            a = context['capture_movies'][context['select'] - 1]

        controls = {
            'up': '?move=up&s=' + str(context['select']),
            'right': '?move=down&s=' + str(context['select']),
            'down': '?move=down&s=' + str(context['select']),
            'left': '?move=up&s=' + str(context['select']),
            'A': '/moviedex/' + a,
            'B': '',
            'start': '',
            'select': '/worldmap',
        }

        context.update({'controls': controls})

        return render(request, 'moviedex/index.html', context)
예제 #6
0
class Detail(View):
    data = Data()

    def get(self, request, id):
        req = request.GET

        controls = {
            'up': '',
            'right': '',
            'down': '',
            'left': '',
            'A': '',
            'B': '/moviedex',
            'start': '',
            'select': ''
        }
        context = {}
        context.update({'controls': controls})
        context.update({'movie': self.data.get_movie(id)})

        return render(request, 'detail/index.html', context)
예제 #7
0
class WorldMap(View):
    data = Data()

    def get(self, request):
        req = request.GET
        event = {}

        controls = {
            'up': '?move=up',
            'right': '?move=right',
            'down': '?move=down',
            'left': '?move=left',
            'A': '',
            'B': '',
            'start': '/options',
            'select': '/moviedex',
        }

        if random.randrange(101) > 80:
            event.update({'moviemon': self.data.get_random_movie()})
            controls['A'] = '/battle/' + event['moviemon']

        if 'move' in req:
            if 'moviemon' not in event:
                self.data.increase_balls(random.randrange(1, 3))
            self.data.move(req['move'])
            return redirect(
                '/worldmap')  #pour eviter le move lors de refresh TODO
        if 'new' in req:
            self.data.clean_data_for_new_game()
            return redirect(
                '/worldmap')  #pour eviter le move lors de refresh TODO

        context = self.data.dump()

        context.update({'event': event})
        context.update(
            {'size': (range(context['size'][0]), range(context['size'][0]))})
        context.update({'controls': controls})
        return render(request, 'worldmap/index.html', context)
예제 #8
0
class Detail(View):
    data = Data()

    def get(self, request, id):
        context = self.data.dump()
        try:
            req = request.GET
            controls = {
                'up': '',
                'right': '',
                'down': '',
                'left': '',
                'A': '',
                'B': '/moviedex',
                'start': '',
                'select': ''
            }
            context = {}
            context.update({'controls': controls})
            context.update({'movie': self.data.get_movie(id)})
        except:
            raise Http404('Sorry the film #{} was not found'.format(id))
        return render(request, 'detail/index.html', context)